我写了一个类A,这个类里面有个成员函数fun(),他很耗费大量的时间,
有个窗口的类B中声明了一个这个类的对象a
然后在B中调用这个耗时的成员函数,出现的情况是类B的窗口再也不响应任何鼠标消息了,
请问该如何处理,
让fun()运行的同时B窗口也可以相应消息。
有个窗口的类B中声明了一个这个类的对象a
然后在B中调用这个耗时的成员函数,出现的情况是类B的窗口再也不响应任何鼠标消息了,
请问该如何处理,
让fun()运行的同时B窗口也可以相应消息。
DWORD dwThreadID;
HANDLE hThread=CreateThread(NULL,0,ThreadProc,(LPVOID)需要的参数,可以为结构或对象的指针,0,&dwThreadID);
CloseHandle(hThread);
将你的函数写在线程函数中,线程函数原型如下: DWORD WINAPI ThreadProc(LPVOID lParameter)
{
fun();
return 0L;
}
注意全局资源的保护.
类似于这样,记不大清了
MSG message;
if(::PeekMessage(&message,NULL,0,0,PM_REMOVE)){
::TranslateMessage(&message);
::DispatchMessage(&message);
}