Question

Ou devriez-vous toujours créer un autre objet verrou?

Était-ce utile?

La solution

Oui, convertissez-le en IDictionary et verrouillez-le sur .SyncRoot :

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

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

Merci à cette source pour obtenir des informations.

Bien sûr, un dictionnaire thread-safe serait bien aussi, comme d'autres l'ont suggéré.

Autres conseils

Vous pouvez verrouiller n'importe quel objet de votre choix (sauf les types de valeur). Il est cependant recommandé de verrouiller l'objet .SyncRoot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top