私はいつもSyncLockの例で人々が使用しているのを見ました
Private Lock1 As New Object ' declaration
SyncLock Lock1 ' usage
しかし、なぜ?私の特定のケースでは、データのエンキューとデキューのマルチスレッドの問題を回避するためにキューをロックしています。
このように、Queueオブジェクト自体をロックできますか?
Private cmdQueue As New Queue(Of QueueItem) ' declaration
SyncLock cmdQueue ' usage
助けていただければ幸いです。ありがとう。
編集:
すべての答えに感謝しますが、tcarvinの答えは私が探していたものでした。キューは、送信される新しいメッセージをキューに入れるシングルトンCommsオブジェクトからプライベートであり(Sendメソッドによって公開されます)、キューはこのオブジェクト内のワーカースレッドで一度に1メッセージずつ消費され、ロック内にあるコードは次のとおりです。エンキューとデキューへの1回の呼び出し。