A Monitor
is managed, and more lightweight – but is restricted to your AppDomain
. A Mutex
can be named, and can span processes (allowing some simple IPC scenarios between applications), and can be used in code that wants a wait-handle).
For most simple scenarios, Monitor
(via lock
) is fine.