监控与互斥在C#中

可能重复:
C#中各种线程同步选项之间的区别是什么?

监视器和C#中互斥量有什么区别?

何时使用监视器以及何时在C#中使用互斥锁?

一个Monitor被pipe理,并且更轻量级 – 但是只限于你的AppDomain 。 一个Mutex可以被命名,并且可以跨越进程(在应用程序之间允许一些简单的IPC场景),并且可以在需要等待处理的代码中使用)。

对于大多数简单的情况, Monitor (通过lock )是好的。

关于这个东西的一个很好的build议来源是Joseph Albahari的“Threading in C#”。 所有的内容都可以在线获取。 在我看来,阅读整本书是值得的,但你可以检查这些部分:

  • locking(C#监视器) ;

  • 在互斥体上 。

虽然它不包含.NET 4.0新的并行构造 ,但它是一个非常好的起点。

更新 :本书已更新。 现在,它涵盖了第5部分中的 .NET 4.0并行编程。

互斥锁可以跨进程共享,并且比Monitor更重。

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