我试图获取对执行的主要boost::thread的引用,以便可以中断它。
但是,boost::thread似乎没有提供任何方式。
我在互联网上进行了搜索,但似乎找不到该问题的答案。
我确实看到了一些旧答案,但它们似乎与旧的Boost代码有关。
最接近的人说,使用boost::thread t;
(默认构造函数)将为我提供对当前线程的引用。但是,boost文档似乎说这将创建对非线程的引用。
我的主要目标是中断主线程,而不是引用当前的boost::thread,但这似乎是最简单的方法。
我当前的解决方案是从main创建一个新线程,然后将其join()。有什么方法可以获取当前线程对象(或中断它),而不使用此替代方法?
谢谢
最佳答案
一个默认构造的boost::thread
对象用于(在v1.34和更早版本中)引用当前线程,但是不再引用当前线程。
您不能在boost中中断主线程。最好的方法是启动一个新线程来完成工作,然后从main()
中加入它。
关于multithreading - 获取对当前boost::thread/中断主线程的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5172843/