web-dev-qa-db-ja.com

C#のモニターとミューテックス

可能性のある複製:
C#のさまざまなスレッド同期オプションの違いは何ですか?

C#のモニターとミューテックスの違いは何ですか?

モニターを使用する場合とC#でミューテックスを使用する場合

61
Ajay

Monitorは管理され、より軽量になりますが、AppDomainに制限されます。 Mutexは名前を付けることができ、プロセスにまたがることができ(アプリケーション間でいくつかの単純なIPCシナリオを許可)、待機ハンドルが必要なコードで使用できます)。

ほとんどの単純なシナリオでは、Monitorlock経由)で十分です。

41
Marc Gravell

このことに関する良いアドバイスは、Joseph Albahariによる「Threading in C#」です。すべてのコンテンツはオンラインで入手できます。私の意見では、 本全体 を読む価値がありますが、これらの部分を確認できます:

。NET 4.0の新しい並列構造 はカバーしていませんが、非常に良い出発点です。

Update:本は更新されました。現在、 パート5 で.NET 4.0並列プログラミングを扱っています。

20
jpbochi

Mutexはプロセス間で共有でき、モニターよりもはるかに重いです。

プロセスの境界を越えて同期する必要がない限り、モニターを使用します。

15
Kim Gräsman