async_receive_from
を使用してマルチキャスト入力を読み取っています。だから私はギャップを検出すると、ギャップ充填メッセージを要求/取得するために別のヘルパースレッドに通知します。これが動作している間、メインスレッドは受信メッセージを受信してキューに入れ続けます。私はこの部分を実装することができます。もう1つのスレッドはwaitforsingleobjectを使うことができます。共有メモリを介して詳細を渡して、イベントを起こして目を覚ますことができます。別のスレッドからboost :: asio :: async_receive_fromを中断する
しかし、タスクが完了したら、開始スレッドでasync_receive_from
を中断するヘルパースレッドを取得するにはどうすればよいですか?読んだところから出てくると誰が中断したのか分かるので、次に何をすべきかを知るでしょう。
あなたの設計は不必要に複雑に聞こえますが、より良い回答を得るには、なぜヘルパースレッドと共有メモリを使用しているのかを明確にする必要があります。これらのコンセプトの両方は、asioを使用するときには幾分奇妙です。 –