当我有这样的代码:是List <T>(列表<T>)构造函数线程安全吗?
public static List<Module> ExtensionList
{
get
{
return new List<Module>(Extensions);
}
}
是线程安全的?例如。它是否在Extensions
上发行锁定,并复制列表?或者我应该明确地做到这一点:
public static List<Module> ExtensionList
{
get
{
lock (Extensions)
{
return new List<Module>(Extensions);
}
}
}
号根据MSDN,在'名单所有非静态成员'不guarraned是线程安全的:“公共静态(共享在Visual Basic中)这种类型的成员是线程安全的。任何实例成员不保证是线程安全的。“更多:http://msdn.microsoft.com/pl-pl/library/6sh2ey19(v=vs.110).aspx –
2014-09-05 07:41:21
@pwas为什么这是一个不好的做法?你能详细说明吗?谢谢 – Petr 2014-09-05 07:51:45