2012-02-21 5 views
0

同じハードウェアシステム上で動作している別のプロセスにプロセスが干渉するかどうかを調べようとしています。これは、野生品種の製品で起こる可能性があります。すなわち、複数の.netアプリケーションを実行するのと同じくらい簡単です。私は特定のプロセスで起こって繰り返しロックが言っている場合C#ロックは同じコンピュータシステム上の他のプロセスに影響します

は、C#の観点からインターロック、またはロックのキーワードは、それがロックのその集中的な使用方法に起因するパフォーマンスの他のプロセスに影響を与えるのだろうか?設定は重いロードされたwwwシステムで、私はいくつかの状況的な遅延を経験しています。遅延が、異なるWindowsカーネルスレッドによって完全に隔離されたロックの密なwhileループによって引き起こされたものかどうかを判断したいと思います。

アイソレーションがない場合、.netのアプリケーションドメインはこの場合役に立ちますか?あなたの答え

+2

ロックはプロセスにとってローカルです。 'Mutex'や' Semaphore'クラスのように、プロセス間同期に使用できるロック機構がいくつかあります。 –

答えて

3

いいえ、それはできません。 C#でlock、および.Net全体として、プロセスに対してローカルです。マシン上の他のプロセスに直接影響することはありません。

lock文では、オブジェクトの特定のインスタンス上で動作します。 lockが複数のプロセスに影響を与えるためには、オブジェクトの同じインスタンス上ですべてlockが必要です。オブジェクトはプロセスのローカルなので、これは不可能です。

0

ないため

おかげで、それはあなたが唯一の唯一の独自のワーカープロセスをロックしている...問題になることはないだろう。他のタスクにはプロセスがあります。ロックは特定のタスクには便利ですが、アプリケーションで待ち時間を導入するため、ロックを最小限に抑えることをお勧めします。

1

私はプロセスがハードウェア・システム

の同じ部分上で実行中の別のプロセスを妨げるかどうかを理解しようとしているが、この質問にあなたを導くか、単純にいくつかのシナリオを想像しているものはあります気まぐれに基づいて?

lockは、これらのスレッドを実行しているプロセスに対してローカルです。プロセス間で同期を行う場合は、Semaphoreを使用することを検討してください。

ロックを集中的に使用するため、他のプロセスのパフォーマンスに影響しますか?

短い回答、いいえ。もちろん、lockの自由で気まぐれな使用は、おそらくいくつかのライブロック/デッドロックのシナリオにつながるでしょう。

関連する問題