call_thunk
call_thunk copied to clipboard
CreateThread 里传入类成员方法,如果调用CreateThread的方法退出过快,线程将不会启动
例子: 这样线程将不会被执行。 call_thunk::thunk thunk<cb_type>(obj, &TestClass::fun); CreateThread ( NULL , 0 , (LPTHREAD_START_ROUTINE )thunk, NULL , 0 , NULL ); return;
这样线程才会成功执行 call_thunk::thunk thunk<cb_type>(obj, &TestClass::fun); CreateThread ( NULL , 0 , (LPTHREAD_START_ROUTINE )thunk, NULL , 0 , NULL ); Sleep(100); return;
call_thunk::thunk thunk<cb_type>(obj, &TestClass::fun); 改为全局变量。 临时变量去到线程中就不可用了,注意线程安全。