[loading window] Die thread die!
This commit is contained in:
@@ -121,12 +121,14 @@ INT_PTR CALLBACK LoadingWindow_Win32::DlgProc( HWND hWnd, UINT msg, WPARAM wPara
|
|||||||
DeleteObject( g_hBitmap );
|
DeleteObject( g_hBitmap );
|
||||||
g_hBitmap = NULL;
|
g_hBitmap = NULL;
|
||||||
self->runMessageLoop=false;
|
self->runMessageLoop=false;
|
||||||
|
self->hwnd=NULL;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_APP:
|
case WM_APP:
|
||||||
DestroyWindow(hWnd);
|
DestroyWindow(hWnd);
|
||||||
self->runMessageLoop=false;
|
self->runMessageLoop=false;
|
||||||
|
ExitThread(0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -157,7 +159,7 @@ LoadingWindow_Win32::LoadingWindow_Win32()
|
|||||||
|
|
||||||
guiReadyEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
|
guiReadyEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
|
||||||
|
|
||||||
CreateThread(NULL, NULL, MessagePump, (void *)this, 0, NULL);
|
pumpThread=CreateThread(NULL, NULL, MessagePump, (void *)this, 0, &pumpThreadId);
|
||||||
|
|
||||||
WaitForSingleObject(guiReadyEvent,INFINITE);
|
WaitForSingleObject(guiReadyEvent,INFINITE);
|
||||||
|
|
||||||
@@ -169,7 +171,8 @@ LoadingWindow_Win32::LoadingWindow_Win32()
|
|||||||
LoadingWindow_Win32::~LoadingWindow_Win32()
|
LoadingWindow_Win32::~LoadingWindow_Win32()
|
||||||
{
|
{
|
||||||
SendMessage(hwnd,WM_APP,0,0);
|
SendMessage(hwnd,WM_APP,0,0);
|
||||||
WaitForSingleObject(guiReadyEvent,INFINITE);
|
//SendMessage(hwnd,WM_NULL,0,0);
|
||||||
|
WaitForSingleObject(pumpThread,INFINITE);
|
||||||
if(guiReadyEvent)
|
if(guiReadyEvent)
|
||||||
CloseHandle(guiReadyEvent);
|
CloseHandle(guiReadyEvent);
|
||||||
if( m_hIcon != NULL )
|
if( m_hIcon != NULL )
|
||||||
@@ -192,8 +195,6 @@ DWORD WINAPI LoadingWindow_Win32::MessagePump(LPVOID thisAsVoidPtr)
|
|||||||
DispatchMessage( &msg );
|
DispatchMessage( &msg );
|
||||||
}
|
}
|
||||||
|
|
||||||
SetEvent(self->guiReadyEvent);
|
|
||||||
|
|
||||||
return msg.wParam;
|
return msg.wParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ private:
|
|||||||
RString text[3];
|
RString text[3];
|
||||||
HICON m_hIcon;
|
HICON m_hIcon;
|
||||||
HANDLE pumpThread;
|
HANDLE pumpThread;
|
||||||
|
DWORD pumpThreadId;
|
||||||
HANDLE guiReadyEvent;
|
HANDLE guiReadyEvent;
|
||||||
|
|
||||||
volatile bool runMessageLoop;
|
volatile bool runMessageLoop;
|
||||||
|
|||||||
Reference in New Issue
Block a user