Quand est-il approprié d'utiliser la Monitor
classe ou le lock
mot - clé pour la sécurité des threads en C #?
EDIT:
Il semble, d'après les réponses jusqu'à présent, que ce lock
soit un raccourci pour une série d'appels à la Monitor
classe. À quoi sert exactement le raccourci d'appel de verrouillage? Ou plus explicitement,
class LockVsMonitor
{
private readonly object LockObject = new object();
public void DoThreadSafeSomethingWithLock(Action action)
{
lock (LockObject)
{
action.Invoke();
}
}
public void DoThreadSafeSomethingWithMonitor(Action action)
{
// What goes here ?
}
}
Mise à jour
Merci à tous pour votre aide: j'ai posté une autre question en réponse à certaines des informations que vous avez toutes fournies. Puisque vous semblez bien connaître ce domaine, j'ai publié le lien: Quel est le problème avec cette solution pour verrouiller et gérer les exceptions verrouillées?