请教一个简单的耗时问题的处理。

scsi 2003-10-15 03:20:35
我写了一个类A,这个类里面有个成员函数fun(),他很耗费大量的时间,
有个窗口的类B中声明了一个这个类的对象a
然后在B中调用这个耗时的成员函数,

出现的情况是类B的窗口再也不响应任何鼠标消息了,
请问该如何处理,
让fun()运行的同时B窗口也可以相应消息。
...全文
31 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
PiggyXP 2003-10-15
  • 打赏
  • 举报
回复
是不是可以在A类主循环中中添加上相应消息转发的函数
类似于这样,记不大清了
MSG message;
if(::PeekMessage(&message,NULL,0,0,PM_REMOVE)){
::TranslateMessage(&message);
::DispatchMessage(&message);
}
SeekTruth 2003-10-15
  • 打赏
  • 举报
回复


简单点;


DWORD dwThreadID;
HANDLE hThread=CreateThread(NULL,0,ThreadProc,(LPVOID)需要的参数,可以为结构或对象的指针,0,&dwThreadID);
CloseHandle(hThread);
  
 将你的函数写在线程函数中,线程函数原型如下:

DWORD WINAPI ThreadProc(LPVOID lParameter)
{
fun();
return 0L;
}

注意全局资源的保护.
 

scsi 2003-10-15
  • 打赏
  • 举报
回复
能否用代码示意一下,
小弟实在不知道如何用多线程来进行响应。
FAICHEN 2003-10-15
  • 打赏
  • 举报
回复
多线程处理
wuxfBrave 2003-10-15
  • 打赏
  • 举报
回复
用线程

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧