如果我有一個線程安全與字典
Dictionary<int, StreamReader> myDic = new Dictionary<int, StreamReader>
//Populate dictionary
一個線程執行
myDic[0] = new StreamReader(path);
另一個線程做
myDic[1] = new StreamReader(otherpath)
因爲在字典中的實際項目越來越這是線程安全的修改是不同的另一個線程上或我會得到一個InvalidOperationException: Collection was modified
,如果我有cuncorrentDictionary,我需要檢查的containsKey然後如果真正做一些事情:然後我仍然不得不將其鎖定:鎖定'(櫃) { 如果(MyConDic.ContainsKey(toUserName) ) {...}}'....不是? –
@RoyiNamir:這破壞了'ConcurrentDictionary'的整個目的。使用它的API – SLaks
但誰保證在96行不會是另一個線程,將增加entery?http://i.stack.imgur.com/MwDuU.jpg?請詳細說明 –