📄 msgwaitformultipleobjects.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style><!--
body,table {font-family:"宋体"; font-size: 9pt; line-height:11pt;}
a {text-decoration:none} a:hover {color:red;text-decoration:underline}
--></style>
<title>MsgWaitForMultipleObjects</title>
</head>
<body background="../../../images/gray_weave.gif" link="#FF0000" vlink="#FF0000" alink="#FF0000" bgcolor="#FFC8C8">
<div align="center"><center>
<table border="0" width="100%" height="22" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" height="16"><a name="MsgWaitForMultipleObjects">MsgWaitForMultipleObjects</a></td>
</tr>
</table>
</center></div><div align="center"><center>
<table border="1" width="100%" bordercolorlight="#808080" cellspacing="0"
bordercolordark="#FFFFFF">
<tr>
<td width="100%" colspan="2">VB声明</td>
</tr>
<tr>
<td width="100%" colspan="2">Declare Function MsgWaitForMultipleObjects Lib
"user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long,
pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask
As Long) As Long</td>
</tr>
<tr>
<td width="100%" colspan="2">说明</td>
</tr>
<tr>
<td width="100%" colspan="2">等侯单个对象或一系列对象发出信号——标志着规定的超时已经过去,或特定类型的消息已抵达线程的输入队列。如返回条件已经满足,则立即返回</td>
</tr>
<tr>
<td width="100%" colspan="2">返回值</td>
</tr>
<tr>
<td width="100%" colspan="2">Long,如fWaitAll设为TRUE,则下述任何一个常数都标志着成功:</td>
</tr>
<tr>
<td width="50%">WAIT_ABANDONED_0</td>
<td width="50%">所有对象都发出消息,而且其中一个或多个属于互斥体(一旦拥有它们的进程中止,就会发出信号)</td>
</tr>
<tr>
<td width="50%">WAIT_TIMEOUT</td>
<td width="50%">对象保持未发信号的状态,但规定的等待超时时间已经超过</td>
</tr>
<tr>
<td width="50%">WAIT_OBJECT_0</td>
<td width="50%">所有对象都发出信号</td>
</tr>
<tr>
<td width="50%">WAIT_TO_COMPLETION</td>
<td width="50%">(仅适用于<a href="WaitForSingleObject.htm">WaitForSingleObjectEx</a>)——由于一个I/O完成操作已准备好执行,从而造成了函数的返回</td>
</tr>
<tr>
<td width="100%" colspan="2">返回WAIT_FAILED表示函数执行失败。会设置<a
href="GetLastError.htm">GetLastError</a><br>
如fWaitAll设为FALSE,那返回结果与前面说的相似,只是可能还会返回相对于WAIT_ABANDONED_0或WAIT_OBJECT_0的一个正偏移量,指出哪个对象是被抛弃还是发出信号。例如,WAIT_OBJECT_0+5的返回结果意味着列表中的第5个对象发出了信号<br>
如果是由于dwWakeMask指定的、符合特殊标准的一条消息的到达而造成了函数的返回,则返回WAIT_OBJECT_0
+ nCount</td>
</tr>
<tr>
<td width="100%" colspan="2">参数表</td>
</tr>
<tr>
<td width="25%">参数</td>
<td width="75%">类型及说明</td>
</tr>
<tr>
<td width="25%">nCount</td>
<td width="75%">Long,指定列表中的句柄数量</td>
</tr>
<tr>
<td width="25%">pHandles</td>
<td width="75%">Long,指定对象句柄组合中的第一个元素</td>
</tr>
<tr>
<td width="25%">fWaitAll</td>
<td width="75%">Long,如果为TRUE,表示除非对象同时发出信号,否则就一直等待下去;如果为FALSE,表示任何对象发出信号即可。</td>
</tr>
<tr>
<td width="25%">dwMilliseconds</td>
<td width="75%">Long,指定要等待的毫秒数。如设为零,表示立即返回。如指定了常数
INFINITE ,则可以根据情况无限期的等候下去</td>
</tr>
<tr>
<td width="25%">dwWakeMask</td>
<td width="75%">Long,带有QS_??前缀的一个或多个常数,用于标识特定的消息类型。一旦这种类型的消息到达,就会造成本函数的返回</td>
</tr>
<tr>
<td width="100%" colspan="2">注解</td>
</tr>
<tr>
<td width="100%" colspan="2"><p align="left">在Windows NT中,对象句柄必须指定了SYNCHRONIZE(同步)访问<br>
如函数是由于对象发出信号而返回,这个函数还会得到一些额外的效果——具体由对象的类型决定。如下所示:<br>
□ 信号机:递增信号机计数<br>
□ 互斥体:将互斥体的所有权赋予发出调用的线程<br>
□ 自动重设事件:将事件发信状态设为FALSE<br>
□ 自动重设可等待计时器:将计时器的状态设回FALSE<br>
这个函数会忽略那些输入队列中已经存在的消息——只根据新消息的接收而返回</td>
</tr>
</table>
</center></div><div align="center"><center>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><p align="right"><a href="#MsgWaitForMultipleObjects">Top</a></td>
</tr>
</table>
</center></div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -