可能重复:
What are the differences between various threading synchronization options in C#?
C#中的Monitor和Mutex有什么区别?
何时使用显示器以及何时在C#中使用互斥锁?
答案 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更重。
除非您需要跨进程边界进行同步,否则请使用监视器。