Как передать boost :: shared_ptr в качестве указателя на функцию потока Windows?

Как передать boost :: shared_ptr как указатель на функцию Windows Thread? предположим следующий код:

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 k = *static_cast< shared_ptr* >(lpParam);
     ...
}

Я думаю, что этот код неверен, какова ваша идея? как я могу это сделать?

РЕДАКТИРОВАТЬ: Я решил свою проблему с помощью boost :: weak_ptr. проверьте мой собственный ответ на этой странице

5
задан Community 23 May 2017 в 10:24
поделиться