64,651
社区成员
发帖
与我相关
我的任务
分享
#include <boost/thread.hpp>
#include <boost/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/smart_ptr.hpp>
using namespace boost;
#include "EasyLog.h"
#include "Utils.h"
boost::thread g_thrd;
class MyClass : public enable_shared_from_this<MyClass>
{
public:
int ThreadProc()
{
log_debug("[%s] BEGIN ========\n", __FUNCTION__);
Utils::ThreadSleep(2000);
log_debug("[%s] END ======================\n", __FUNCTION__);
return 0;
}
MyClass()
{
log_debug("++++\t[%s]\n", __FUNCTION__);
}
~MyClass()
{
log_debug("----\t[%s]\n", __FUNCTION__);
}
void Start()
{
//g_thrd = // 奇怪的地方在这儿!!,如果不加注释,使用g_thrd进行赋值保存,就晕了。。。
boost::thread(boost::bind(&MyClass::ThreadProc, shared_from_this()));
}
};
void Test_Thread()
{
shared_ptr<MyClass> sp(new MyClass());
sp->Start();
}
void CodeWrapper()
{
Test_Thread();
}