Monitor vs Mutex in c#

69,990

Solution 1

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.

Solution 2

A good source of advice on this stuff is the "Threading in C#" by Joseph Albahari. All the content is available online. In my opinion, it's worth to read the whole book, but yo can check these parts:

Although it does not cover .NET 4.0 new parallel constructs, it's a very good starting point.

Update: The book has been updated. Now, it covers .NET 4.0 Parallel Programming in its part 5.

Solution 3

A Mutex can be shared across processes, and is much more heavy-weight than a Monitor.

Use a Monitor unless you need to synchronize across process boundaries.

Share:
69,990
Ajay
Author by

Ajay

Software engineer

Updated on July 05, 2022

Comments