2

我正在尝试获取对执行的主要 boost::thread 的引用,以便我可以中断它。但是, boost::thread 似乎没有提供任何这样做的方法。

我在互联网上搜索过,但似乎找不到这个问题的答案。
我确实看到了一些旧答案,但它们似乎与旧的 bo​​ost 代码有关。
最接近的人说使用boost::thread t;(默认构造函数)会给我一个对当前线程的引用。但是,boost 文档似乎说这将创建对not-a-thread的引用。

我的主要目标是中断主线程,而不是获得对当前 boost::thread 的引用,但这似乎是最简单的方法。

我目前的解决方案是从主线程创建一个新线程,然后加入()它。有没有办法获取当前线程对象(或中断它)而不使用此解决方法?

谢谢

4

1 回答 1

1

用于(在 v1.34 和更早版本中)的默认构造boost::thread对象引用当前线程,但它不再这样做。

你不能中断 boost 中的主线程。您启动一个新线程来完成工作并加入它的解决main()方法是最好的方法。

于 2011-03-02T20:26:41.597 回答