當我有這樣的代碼:是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