1

Connectメソッドに接続すると、メソッドでメッセージを送信できるチャット接続クラスがありますSendMessage。ユーザーが完了すると、 が呼び出されますDisconnect

無制限の数のSendMessage操作がロックを取得できるようにするロックが必要ですが、/ 操作が排他ロックを取得し、他のすべての/ /操作が終了してロックを解除した後にのみConnect/操作を開始できるようにします。DisconnectSendMessageConnectDisconnect

このタイプのロックをSendMessage使用すると、 が internalおよびclassesSocketに安全にアクセスできることを確認でき、それらのいずれも並列呼び出しによって破棄されないことを確認できます。SocketReaderSocketWriterDisconnect

また、明らかに同時に実行できないすべてのConnect/をキューに入れるという利点もあります。Disconnect

そのようなロックは .NET フレームワークに存在しますか?

4

2 に答える 2

3

ReaderWriterLock.Net 4 で a以上が必要なようですReaderWriterLockSlim。SendMessage を使用するには、リーダー ロックを取得しますが、呼び出しConnectまたはDisconnectライター ロックが必要になります。

于 2013-02-02T22:55:01.450 に答える
1

を探しているようですReaderWriterLockSlim

于 2013-02-02T22:55:00.173 に答える