博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程和MsgWaitForMultipleObjects
阅读量:4298 次
发布时间:2019-05-27

本文共 819 字,大约阅读时间需要 2 分钟。

 

总结:

如果在工作线程中有可能涉及到了消息驱动的API,那么不能在主线程中使用WaitForSingleObject一类函数,而建议使用MsgWaitForMultipleObjects

 

while(TRUE){    DWORD result ;     MSG msg ;     result = MsgWaitForMultipleObjects(1, &readThreadHandle,         FALSE, INFINITE, QS_ALLINPUT);     if (result == (WAIT_OBJECT_0))    {        break;    }     else     {         PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);        DispatchMessage(&msg);     } }

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

设置多线程标记退出后(_runFlag = false),调用以下函数,   既既可以等待消息,也可以等待线程

void WaitForSingleObjectAndMsg( HANDLE hHandle){	while(TRUE)	{		DWORD result ; 		MSG msg ; 		result = MsgWaitForMultipleObjects(1, &hHandle, 			FALSE, INFINITE, QS_ALLINPUT); 		if (result == (WAIT_OBJECT_0))		{			break;		} 		else 		{ 			PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);			DispatchMessage(&msg); 		} 	}}

 

 

 

参考:

 

 

 

 

 

转载地址:http://tmnws.baihongyu.com/

你可能感兴趣的文章
springboot(九)添加jsp支持
查看>>
idea使用git和GitHub-for-windows比较
查看>>
rabbitmq安装
查看>>
springboot(十二)整合rabbitmq
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>