元々、ソケットのasync_receive()ハンドラ内でboost :: asio :: write()を実行することができますか?これは単一のスレッドで単一のio_serviceで発生しています。私はこれを行うために書かれたいくつかのコードを持っています。私はがwrite()コールにハングしていると思いました。しかし、私は自分のゲームでプレイボタンを押すのを忘れました(これは少しのクライアント - サーバーゲーム用です)!しかし、これは私のブーストアシオの理解にはあまり合わないので、質問を残しておきますが、なぜこれが機能するのですか?C++ boost asio sync async_receiveハンドラでの書き込み
まず、io_serviceがすでにこのasynch_receive()ジョブでビジー状態であるため、スレッドがwrite()呼び出しを処理できないため、これを実行できないと考えました。私はwrite()を処理できるio_service.run()を実行している別のスレッドが必要であると思っていました。どうやら、それはそうではありません。
スレッドはio_serviceで1つずつジョブを実行します。その場合、私のアプリが動作しているなら、非同期ハンドラの実行を開始したら、あなたのジョブは既にキューから移動されているはずです。右?