Quand est-il approprié d'utiliser soit la classe Monitor
ou le mot-clé lock
pour la sécurité des threads en C#?
EDIT: Il semble, d'après les réponses jusqu'à présent, que lock
est une abréviation pour une série d'appels à la classe Monitor
. Pour quoi exactement l'appel à lock est-il une abréviation? 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)
{
// Qu'est-ce qui va ici ?
}
}
Update
Merci à tous pour votre aide : J'ai posté une autre question en guise de suivi aux informations que vous avez tous fournies. Puisque vous semblez bien versés dans ce domaine, j'ai posté le lien : Qu'est-ce qui ne va pas avec cette solution de verrouillage et de gestion des exceptions verrouillées?