繁体   English   中英

C#Constructor线程安全吗?

[英]Is a C# Constructor thread safe?

假设我有多个线程,每个线程都试图创建同一个类的对象。
在不同线程中同时创建相同类型的对象是否会相互干扰? 我是否需要在构造函数中使用“lock”?

这在很大程度上取决于构造函数的实现。

如果构造函数只访问该类的成员,而不是任何外部静态类或方法,那么是 - 它是线程安全的。

但是,如果该构造函数正在访问存在于类本身之外的非线程安全对象(例如全局单例),那么它不是线程安全的。

更新:构造函数应该注意不要访问不是readonly或const的类的任何静态成员。 (感谢Nathan A和LVBen)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM