只读静态字段初始化期间的线程安全如果创建只读静态成员,它看起来是这样的:publicsealedclassMyClass{publicreadonlystaticMyClass实例=新的MyClass();}我们知道,如果一个线程第一次访问MyClass,静态构造函数会初始化MyClass.Instance字段。但是,如果多个线程同时访问MyClass(即静态字段线程安全初始化),是否会创建单个实例(在本例中为MyClass)?.NETCLR确保静态初始化始终是线程安全的。它总是初始化一次,无论有多少线程访问它以及以什么顺序访问它。您的代码似乎显示出单例模式开始的迹象。基本上,如果你想在类初始化之前运行自定义代码,那么你需要自己确保线程安全。下面是使自定义代码线程安全所需的示例。但是静态初始化部分总是线程安全的。C#语言的规范保证了类初始化是线程安全的,所以只会创建一个MyClass实例。从那时起你必须自己确保线程安全。这是一个MSDN参考:http://msdn.microsoft.com/en-us/library/aa645612.aspx以上就是C#学习教程:初始化只读静态字段时的线程安全的全部内容。很有用,需要多了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
