我想不用MFC的库函数,要怎么进行主线程和工作线程之间的通信.

linkaihui 2006-09-24 03:43:54
我现在不想用全局变量.但是消息机制好象都在MFC底下定义的.那如果想不用MFC的东西,我要怎么进行主线程和工作线程之间的通信?因为我想把最终做的结果搬到BORLAND C中.
...全文
168 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xl5338870 2006-09-24
  • 打赏
  • 举报
回复
borland c++也可以用mfc

DWORD WINAPI WorkerThread(LPVOID lp)
{
MSG msg;

PeekMessaage(&msg, 0, 0, 0, PM_NOREMOVE); // force to create message queue

while (GetMessage(&msg...)) { // WM_QUIT 消息退出
switch(msg.message) {
case WM_USER+1: EvnUser1(); break; .... //消息处理
case WM_USER+2: EvnUser2(); break; .... //
default:
DefWindowProc(...);
}
}
return msg.wparam;
}


或者自己写一个队列,工作线程阻塞在该队列上,一有任务就取出来工作。如果用windows的消息队列消耗资源多一些。
GoAround 2006-09-24
  • 打赏
  • 举报
回复
可以用PostThreadMessage,工作线程也可以有消息循环,不过你要自己处理消息
如果只是同步可以用Event

15,471

社区成员

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

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