2011-03-02 85 views
2

我想获得对主boost ::执行线程的引用,以便我可以中断它。 但是,boost :: thread似乎没有提供任何这样做的方式。获取对当前boost :: thread /中断主线程的引用

我已经在互联网上搜索,但我似乎无法找到这个问题的答案。
我确实看到一些旧的答案,但它们似乎与旧的升压代码有关。
最接近的一个表示使用boost::thread t;(默认构造函数)会给我一个对当前线程的引用。然而,助推文件似乎说,这将创建一个非线程的参考。

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

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

感谢

回答

1

默认构造用来boost::thread对象(v1.34或更早)是指当前线程,但它没有这样做下去。

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