web-dev-qa-db-fra.com

Surveiller vs Mutex en c #

Duplicata possible:
Quelles sont les différences entre les différentes options de synchronisation de threading en C #?

Quelle est la différence entre un moniteur et un Mutex en C #?

Quand utiliser un moniteur et quand utiliser un Mutex en C #?

61
Ajay

Un Monitor est géré et plus léger - mais est limité à votre AppDomain. Un Mutex peut être nommé et peut s'étendre sur des processus (permettant des scénarios simples IPC entre les applications), et peut être utilisé dans du code qui veut un handle d'attente).

Pour la plupart des scénarios simples, Monitor (via lock) convient.

41
Marc Gravell

Une bonne source de conseils à ce sujet est le "Threading in C #" de Joseph Albahari. Tout le contenu est disponible en ligne. À mon avis, cela vaut la peine de lire tout le livre , mais vous pouvez vérifier ces parties:

Bien qu'il ne couvre pas . NET 4.0 nouvelles constructions parallèles , c'est un très bon point de départ.

Mise à jour : le livre a été mis à jour. Maintenant, il couvre la programmation parallèle .NET 4.0 dans son partie 5 .

20
jpbochi

Un Mutex peut être partagé entre plusieurs processus et est beaucoup plus lourd qu'un moniteur.

Utilisez un moniteur, sauf si vous devez synchroniser au-delà des limites du processus.

15
Kim Gräsman