【发布时间】:2012-04-23 05:12:45
【问题描述】:
我正在和一个朋友辩论,他说静态构造函数可以让位于竞争条件,因为静态构造函数可以被多次调用。似乎这只能在大容量多线程环境中发生。这甚至可能吗?
我找不到任何文件来证明他错了。有人对此有任何见解吗?
谢谢!
【问题讨论】:
-
如果一个新线程做了一些会触发静态构造函数的事情,而静态构造函数已经在另一个线程上运行,就会出现竞争条件。线程将阻塞,直到静态构造函数完成运行。但是静态构造函数可能正在等待该新线程完成。见stackoverflow.com/a/8883117/385844
标签: c# race-condition static-constructor