私は、tcp ソケット非同期呼び出しを使用して 8 バイトのプロトコル ヘッダーを受信するプログラムを作成しています。ReadCallBack() [非同期コールバック] を処理する場合、同期読み取りを使用してペイロード メッセージを取得してから処理します。
私の質問は、 ReadCallback メソッドがスレッドセーフかどうかです。これらのペイロードを処理するために通常の辞書を使用しています。それは何らかの形でその口述に影響を与えますか?
分離されている場合、すべてが事実上スレッドセーフです。重要な質問は、他に何が起こっているのかということです。他に辞書にアクセス (読み取りまたは書き込み) しているものは何ですか? 何もない場合は、問題ありません。コールバックが呼び出されます (使用されている特定の API と、バッファーで使用可能なデータに応じて、 を発行するスレッドまたは完了ポート スレッドのいずれかになります)。おそらく、何か他のこと (読み取り/書き込み/閉じる) を行う前に、辞書でいくつかの作業を行うことになります。Read...
ただし、他のスレッドがディクショナリにアクセスしている場合、特定のコードなしでは質問に答えることができません。