single thread:
whil(!event)
{
......
}mutil thread:
使用一个线程做管理线程,在得到终止事件后就终止事务线程
whil(!event)
{
......
}mutil thread:
使用一个线程做管理线程,在得到终止事件后就终止事务线程
解决方案 »
- 多文档窗口怎么让其中一个视图全屏
- 修改别人的代码中文显示为乱码
- API编写的串口,收到的16进制如何显示成文本?
- VC6.0打不开
- 怎样用对话框获取文件目录,并在列表中显示
- 请问:、我的摄像头电源是15v的,我想通过串口或并口检测此摄像头的开或者关的状态,请行家们给点思路。2、该怎样把电源线和接口线连接起
- 如何要一个非窗体类中显示一个自已定制的对话框?
- 如何把COleDateTime转换成CString,用format怎么输出不了。多谢
- CTreeCtrl的小问题....
- 求教MMIO系列函数
- 请教:怎样在VC6下编译通过关于outlook\Exchange开发的例子程序
- 怎样得知CListCtrl中当前选项?
for (;;){
//do what you want to do.
MSG msg;
if (GetMessage(&msg)){
dispatumessage(&msg)
TranslateMessage(&msg)
}
}
{
//检查中断的消息,以便退出
MSG msg;
while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
//退出
if(!m_bQuit)
break;
}
然后可以在别的函数事件里改变m_bQuit的值,就可以中断了
要使用单线程而要响应系统事件,就必须在加入循环中
捕获系统事件的机制,如PeekMessage一类的;
我认为在这种情况下还是用多线程比较好
1、多线程
2、OnTimer
3、在循环中使用下面方法来转发消息:
MSG msg;
if (GetMessage(&msg))
{
dispatumessage(&msg)
TranslateMessage(&msg)
}