Boost作用域指针指向Boost线程
Boost Scoped Pointer To Boost Thread
今天,我想使用boost::scope_ptr来指向boost::线程。
在我的Thread.h中,我有boost::scoped_ptr<boost::thread> m_thread
,在Thread.cpp中有一个函数create()
,应该在其中创建boost::线程。我尝试了Thread::m_thread (new boost::thread(attr, boost::bind(%Thread::run, this)));
,但不出所料,它不起作用。
我自己(或通过使用boost文档)都不知道该如何做到这一点,因为我不完全了解scope_ptr发生了什么以及它是如何工作的。以前我经常使用原始指针,它工作得很好,但现在不允许我使用它。
谢谢你抽出时间!
我不知道你得到了什么样的错误,试试这个:
class Thread {
public:
Thread() : thread_(new boost::thread(boost::bind(&Thread::run, this))) {
}
void run() {
}
~Thread() {
thread_->join();
}
private:
boost::scoped_ptr<boost::thread> thread_;
};
int main() {
Thread thread;
}
但不要忘记,该线程可能会在构造函数结束其工作之前启动。
相关文章:
- BOOST线程:线程还是进程
- 如何解决传递给boost线程的函数中的歧义
- cpp 为什么 boost::线程内部的循环不遍历所有值并且推送相同的值?
- C 从类的构造函数运行Boost线程
- 重新分配独立的boost ::线程安全吗?
- Boost::线程如何在主线程和工作线程之间同步
- 链接Boost线程库
- BOOST ::线程内会成员功能调用返回unique_lock Instantiation错误
- Boost ::线程何时终止?如何管理Boost ::线程
- 链接到boost ::线程失败
- 在C 中处理Boost线程条件
- Poco任务管理器/Boost线程混合和匹配
- 创建一个 boost::线程 带有 boost::bind() 或不带
- 为不受支持的平台调整Boost线程/进程
- 删除boost ::线程后代
- 我需要在Boost线程功能中调用Unlock()
- C OPENCV图像在Boost线程中不显示
- boost ::线程在删除可加入线程时存在什么问题
- 增强异步插座和Boost ::线程
- 如何使boost ::线程入睡