私は、ユーザーからリクエストを受け取ることができるゲームサーバーを持っています。ユーザーは作品の配置を要求することができます。次に、placeメソッドは、いくつかの非同期のhttpwebrequests(タイムアウト付き)を生成して、配置が正しいかどうかを調べます。サーバーが配置要求を受け取ったときにロックされるロックが必要で、Webコールバックによってロックが解除されます。私はReaderWriterLockを使用しますが、同じスレッドにとどまる場合にのみ機能し、Web要求のコールバックは別のスレッドで発生します。私は使用すべき別のロックがありますか?スレッドをロックして別のスレッドにロック
6
A
答えて
9
a semaphoreを使用できます。ロックスレッドはパーミットを取得します。非同期スレッドは許可を解放します。セマフォーは個々のスレッドに束縛されていないので気にならない。
4
Semaphoreを使用できます。マニュアルから引用。
Semaphoreクラスは、WaitOneまたはReleaseの呼び出しでスレッドIDを強制しません。
つまり、2つの異なるスレッドから取得/解放する際に問題はありません。
ありがとうございました。 – Nikhil