boost线程之类成员函数
来源:互联网 发布:mac 口红brave 编辑:程序博客网 时间:2024/05/28 20:18
首先,是准备工作,包含头文件
#include <iostream>#include <boost/bind.hpp>#include <boost/thread.hpp>#include <boost/thread/mutex.hpp>using namespace std;//线程休眠,毫秒级#define BOOST_SLEEP(n) boost::thread::sleep(boost::get_system_time()+boost::posix_time::millisec(n))
然后,创建一个简单的类CTest,
class CTest{public:CTest(){};~CTest(){};voidFunc();static void FuncThread(void *pData);};void CTest::Func(){cout<<"here is CTest::Func this="<<this<<endl;boost::thread thTest(boost::bind(CTest::FuncThread,this));thTest.join();}void CTest::FuncThread(void *pData){CTest *pOwner = (CTest*)pData;while(1){cout<<"here is CTest::FuncThread running. this="<<pOwner<<endl;BOOST_SLEEP(1000);}}
最后,测试一下
int _tmain(int argc, _TCHAR* argv[]){ CTest test; test.Func(); return 0;}
关键点在于,作为线程的成员函数,必须是静态的。
测试第二下,在类外部调用类成员函数产生线程
int _tmain(int argc, _TCHAR* argv[]){ CTest test; boost::thread thTest(boost::bind(CTest::FuncThread,&test)); thTest.join(); return 0;}
0 0
- boost线程之类成员函数
- Boost线程运行类成员函数
- 利用BOOST, 成员函数做线程
- CMarkup之类成员函数说明
- Boost.Regex 成员函数
- 成员函数指针 还有std::function之类
- C++之类的六个默认成员函数
- C++之类的成员函数的原理
- C++之类外定义成员函数、inline成员函数详解
- C++之类外定义成员函数、inline成员函数详解
- boost thread 使用类的非静态成员函数做线程函数之【原理】
- boost::bind 绑定成员函数
- C++之类的静态成员变量和静态成员函数
- C++之类的const成员变量和const成员函数
- C++之类的const成员变量和成员函数2
- 成员函数线程适配器
- 线程调用成员函数
- boost bind 全局函数(非成员函数)
- mipi 的LCD调试经验
- 将任意类型数组变为集合
- 无线路由器开启或关闭DHCP
- %I64d %I64u
- 数据结构中排序算法- 图书馆排序(6)
- boost线程之类成员函数
- 数组组成最小数字
- UE4 Static Mesh LODs
- 2015多校联合第三场5319painter
- 程序=方案+代码
- UE4 FBX Static Mesh Pipeline
- Objective-C语法之代码块(block)的使用
- 深度学习
- java list转换为树形