怎么能让线程不阻塞窗口按钮的点击
小弟新写了一线程的程序,现在想在程序中点击按钮后触发线程函数,比如我点一次按钮现在开始执行我线程里的内容,当线程里的内容在执行中时,我再点这按钮,会再起一线程,这线程也还是以下这函数,我还想再点一次按钮时我的窗口停止我的鼠标点击这按钮了,我想知道怎么才能让一个按钮能排队三次线程的操作并在操作后消毁掉这些线程,小弟的程序有些阻塞,请各位大大帮忙看看。
void CMainFrameWnd::DownloadFilesToDisk(){// MessageBoxA(NULL,"等待中",NULL,NULL); DWORD dwRet = GlobalmplFun::WaitThread(m_Thread); m_Thread =::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ClasicThreadProc, NULL, 0, &threadID);}DWORD GlobalmplFun::WaitThread( HANDLE waitThread,DWORD waitTimer/*=INFINITE*/,BOOL bInput/*=TRUE*/ ){ MSG msg; DWORD ret; if(!waitThread) return 0; while(waitThread) { ret=MsgWaitForMultipleObjects(1,&waitThread,FALSE,waitTimer,QS_ALLINPUT);// if(ret==WAIT_OBJECT_0+1) { while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { if(msg.message==WM_QUIT) { CloseThread(waitThread); DispatchMessage(&msg); return 0; } if(bInput) { if((msg.message<WM_MOUSEFIRST||msg.message>WM_MBUTTONDBLCLK)&&(msg.message<WM_KEYFIRST||msg.message>WM_KEYLAST)) DispatchMessage(&msg); } else { DispatchMessage(&msg); } } } else if(ret==WAIT_OBJECT_0) { return CloseThread(waitThread); } } return 0;}