在一段时间后中断增强线程

时间:2016-11-18 20:51:02

标签: c++ multithreading boost boost-thread

我想在一段时间后中断一个提升线程。

我的控制流程是我有一个主线程。 在主线程中我做了:

int main() {
    boost::thread t(my_func);
    boost::this_thread::sleep_for(boost::chrono::seconds(60));
    t.interrupt();
    t.join();

    return 0;
}

void my func() {

    try {
        // do something that takes a time greater than sleep time
        boost::this_thread::interruption_point();
    }

    catch (boost::thread_interrupted &) {
        printf("the spawned thread is exiting);
    }
}

我正在尝试这个但是由于某种原因,当调用sleep函数时,中断点没有被捕获。即使我拿走了睡眠功能,也没有显示捕获信息。

如果主要功能是在另一个线程上运行的线程,您的答案会如何变化?

0 个答案:

没有答案