Domanda

O dovresti sempre creare qualche altro oggetto lock?

È stato utile?

Soluzione

Sì, esegui il cast su un IDictionary e blocca .SyncRoot :

Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();

lock (((IDictionary)dic).SyncRoot)
{
    // code
}

Grazie a questa source per le informazioni.

Ovviamente anche un dizionario thread-safe sarebbe carino, come altri hanno suggerito.

Altri suggerimenti

È possibile bloccare qualsiasi oggetto desiderato (tranne i tipi di valore). Si consiglia di bloccare l'oggetto .SyncRoot.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top