我有一個多線程應用程序中的靜態字典。 class A讀取字典和類B從中刪除。 我想在從字典中刪除字典或從字典中讀取時鎖定字典,以防止在併發情況下訪問字典。 如何鎖定字典?如何鎖定字典?
public static Dictionary<string, Thread> DicThreads = new Dictionary<string, Thread>();
Class A()
{
private void MethodA()
{
if (DicThreads.ContainsKey(key))
if (DicThreads[key] == null || DicThreads[key].ThreadState == ThreadState.Stopped)
{
//--- Do something
}
}
class B
{
private void MethodB()
{
DicThreads.Remove(key)
}
}
爲什麼不使用'ConcurrentDictionary' ?: http://msdn.microsoft.com/pl-pl/library/dd287191(v=vs.110).aspx – 2014-09-23 07:51:18
鎖(字典){...} – Gusman 2014-09-23 07:51:42
如果您使用.NET 4或更高版本,請使用COncurrentDictionary – cost 2014-09-23 07:52:21