如何将boost::shared_ptr作为指针传递给Windows线程函数?
假设以下代码:
test::start()
{
....
_beginthreadex( NULL, 0, &test::threadRun, &shared_from_this(), 0, &threadID );
...
...
}
/*this is a static function*/
UINT __stdcall test::threadRun( LPVOID lpParam )
{
shared_ptr<test> k = *static_cast< shared_ptr<test>* >(lpParam);
...
}
我认为这段代码是不正确的,你有什么想法吗?我该怎么做?
编辑:我通过使用boost::weak_ptr解决了我的问题。请查看我在此页面上的回答。