0

私はそのようなパターンを使用しています:

boost::thread receiverThread;
....
stayConnected = false;
if (receiverThread.joinable()) {
    receiverThread.join();
}

receiverThreadスレッドはstayConnectedフラグを定期的にチェックし、フラグが設定されてfalseいる場合は終了する必要があります。

ここで、メイン コードを "bad" から保護したいと思います。5 秒経っても終了しないreceiverThread場合は、それを強制終了します。receiverThread

boost::thread receiverThread;
....
stayConnected = false;
if (receiverThread.joinable()) {
    receiverThread.join();
    // not to hang forever, if receiverThread not finished after 5 seconds, kill it
}

これを行う最良の方法は何ですか?

4

1 に答える 1