Monitor vs Mutex in c #

Possibile duplicato:
Quali sono le differenze tra le varie opzioni di sincronizzazione dei thread in C #?

Qual è la differenza tra un monitor e un mutex in C #?

Quando utilizzare un monitor e quando utilizzare un mutex in C #?

Un Monitor è gestito e più leggero, ma è limitato AppDomain . Un Mutex può essere denominato e può estendersi su processi (consentendo alcuni semplici scenari IPC tra le applicazioni) e può essere utilizzato in codice che richiede un wait-handle).

Per gli scenari più semplici, Monitor (tramite lock ) va bene.

Una buona fonte di consigli su questa roba è “Threading in C #” di Joseph Albahari. Tutto il contenuto è disponibile online. A mio parere, vale la pena leggere l’intero libro , ma puoi controllare queste parti:

  • Sul blocco (monitor C #) ;

  • Su Mutex .

Sebbene non copra i nuovi costrutti paralleli .NET 4.0 , è un ottimo punto di partenza.

Aggiornamento : il libro è stato aggiornato. Ora, copre .NET 4.0 Parallel Programming nella sua parte 5 .

Un mutex può essere condiviso attraverso i processi ed è molto più pesante di un monitor.

Utilizzare un monitor a meno che non sia necessario sincronizzare oltre i limiti del processo.