在我的程序中,它启动了一个 boost 线程并将处理程序作为主线程的成员。当用户按下取消按钮时,我需要检查启动的线程是否仍在运行,如果它正在运行,则需要终止该特定线程。这是伪代码。
作弊线程
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
}