1,183
社区成员
发帖
与我相关
我的任务
分享
static void close_callback_thread(HANDLE thread)
{
if(thread == NULL)
return;
if(msgqueue_ready_evt) {
/* if quit before the thread ready */
WaitForSingleObject(msgqueue_ready_evt, INFINITE);
CloseHandle(msgqueue_ready_evt);
msgqueue_ready_evt = NULL;
PostThreadMessage(GetThreadId(thread), WM_QUIT, 0, 0);
WaitForSingleObject(thread, INFINITE);
CloseHandle(thread);
}
}
var
GetThreadId: function(threadHandle: THandle): DWORD;stdcall;
GetThreadId := GetProcAddress(GetModuleHandle('Kernel32.dll'),'GetThreadId');
if Assigned(GetThreadId) then
Tag := GetThreadId(GetCurrentThread);