Lorsque vous verrouillez un objet, cet objet est-il verrouillé dans toute l'application?Est-ce que le verrou (objlocker) permet de sécuriser l'application thread thread? Et les membres statiques sont-ils automatiquement sécurisés?
Par exemple, cet extrait de C# 3.0 dans un Nutshell Section 19.6.1 "Enfilez Types de sécurité et .NET Framework":
static void AddItems()
{
for (int i = 0; i < 100; i++)
lock (list)
list.Add ("Item " + list.Count);
string[] items;
lock (list) items = list.ToArray();
foreach (string s in items) Console.WriteLine (s);
}
Est-ce que le premier verrou:
lock (list)
list.Add ("Item " + list.Count);
empêcher une autre thread d'accès:
lock (list) items = list.ToArray();
ou peuvent être exécutés en même temps?
Et le CLR rend-il automatiquement vos threads de méthodes statiques sûrs? Ou est-ce à la hauteur du développeur?
Merci, John
Merci de l'avoir éclairci pour moi. – John