4
pourquoi ce test de verrouillage ne fonctionne pas? il est lancer une exception beugler Console.Write cette collection a été modifié ....Pourquoi cette instruction de verrouillage ne fonctionne pas?
static List<string> staticVar = new List<string>();
static void Main(string[] args)
{
Action<IEnumerable<int>> assyncMethod = enumerator =>
{
lock (staticVar)
foreach (int item in enumerator)
staticVar.Add(item.ToString());
};
assyncMethod.BeginInvoke(Enumerable.Range(0, 500000), null, null);
Thread.Sleep(100);
Console.Write(staticVar.Count());
foreach (string item in staticVar)
{
}
}
uniquement à la collecte ou tous les types? – Alexandre
Le point d'un verrou est que rien ne peut entrer dans la serrure si elle est tenue ailleurs. Le verrou peut n'avoir aucun effet sur un morceau de code s'il n'est pas autour de lui. Un verrou doit entourer chaque section de code qui utilise une variable synchronisée. – Martin