Se ho un filoDiscussione con dizionario
Dictionary<int, StreamReader> myDic = new Dictionary<int, StreamReader>
//Populate dictionary
Uno fa
myDic[0] = new StreamReader(path);
Un altro thread fa
myDic[1] = new StreamReader(otherpath)
È questo thread-safe perché l'elemento reale nel dizionario ottenere modificato è diverso da quello sull'altro thread o otterrò un InvalidOperationException: Collection was modified
, cosa succede se ho cuncorrentDictionary e ho bisogno di controllare containsKey e poi fare qualcosa se è vero: allora ancora avrei dovuto bloccarlo: 'blocco (armadietto) { se (MyConDic.ContainsKey (toUserName)) {...}} '.... no? –
@RoyiNamir: Ciò sconfigge l'intero scopo di "ConcurrentDictionary". Usa le sue API – SLaks
Ma chi garantisce che nella riga 96 non ci sarà un altro thread che aggiungerà l'entery? Http: //i.stack.imgur.com/MwDuU.jpg? si prega di elaborare –