怎么进程间检验标志

如何进程间检验标志?
需要两个进程之间通讯,进程A设置了一个标志,进程B会在循环内周期检验标志做出响应。
预想进程B内用事件很好处理,但是WaitForSingleObject是阻塞的,我只需要检验标志状态就可以了不要等待,有没有类似TestEvent的API?
或者这种情况怎么处理?
------解决思路----------------------
一个线程中如果有死循环,则循环中必须加入Sleep,否则线程无法接收消息,或者在循环中用API读消息
------解决思路----------------------
共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的:
·进程之间松耦合
·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。
·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。
·方便在线开关服务,只需删除或创建该临时文本文件即可。
·方便实现分布式和负载均衡。
·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满)
·……

比如:
A将请求数据写到文件a.txt,写完后改名为aa.txt
B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,改名为bb.txt
A发现bb.txt存在时,读取其内容,读完后删除bb.txt
以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。
除非A或B不支持判断文件是否存在、文件读写和文件更名。
但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢?

------解决思路----------------------
引用:
Quote: 引用:

WaitForSingleObject, 把最后一个参数的超时时间设置为 0, 就可以达到你的目的了。

那返回值怎么判断,WAIT_OBJECT_0是置位,那复位的返回值是什么?
还有比较常规的做法是什么?
谢谢了~

复位就是没有信号,那就意味着超时了,WAIT_TIMEOUT(虽然你没设等待时间)。
这就是比较常规的做法呀,不设超时,就是用来测试信号的。
MSDN: If dwMilliseconds is zero, the function tests the object's state and returns immediately.
当然你也可以弄一个全局变量当标志,作好线程同步就行了。