私のプログラムでは、ブーストスレッドを開始し、ハンドラーをメインスレッドのメンバーとして保持します。ユーザーがキャンセルボタンを押すと、開始されたスレッドがまだ実行されていることを確認する必要があり、実行されている場合は、その特定のスレッドを強制終了する必要があります。これが擬似コードです。
不正行為のスレッド
int i =1;
boost::thread m_uploadThread = boost::thread(uploadFileThread,i);
これは、スレッドがまだ実行されているが、機能していないかどうかを確認するために使用するメソッドです。
boost::posix_time::time_duration timeout = boost::posix_time::milliseconds(2);
if (this->uploadThread.timed_join(timeout)){
//Here it should kill the thread
}