在c#中监视vs Mutex

时间:2009-07-22 09:12:44

标签: c# multithreading synchronization

  

可能重复:
  What are the differences between various threading synchronization options in C#?

C#中的Monitor和Mutex有什么区别?

何时使用显示器以及何时在C#中使用互斥锁?

3 个答案:

答案 0 :(得分:40)

管理Monitor,更轻量级 - 但仅限于AppDomain。可以命名Mutex,并且可以跨进程(允许应用程序之间的一些简单IPC方案),并且可以在需要等待句柄的代码中使用。

对于大多数简单方案,Monitor(通过lock)都可以。

答案 1 :(得分:19)

关于这些东西的一个很好的建议来源是Joseph Albahari的“C#中的线程”。所有内容均可在线获取。在我看来,值得阅读the whole book,但你可以查看这些部分:

虽然它不包括.NET 4.0 new parallel constructs,但这是一个非常好的起点。

更新:该书已更新。现在,它涵盖了part 5中的.NET 4.0并行编程。

答案 2 :(得分:15)

Mutex可以跨进程共享,并且比Monitor更重。

除非您需要跨进程边界进行同步,否则请使用监视器。