事件触发了窗口消息

时间:2012-06-04 15:49:04

标签: winapi overlapped-io

设置事件时是否有办法生成Window消息?我想设置一个重叠的I / O操作,所以它没有阻塞,但我不想轮询它的状态。我知道我可以使用一个线程,但我只需要它来进行此操作。似乎有更好的方法。

1 个答案:

答案 0 :(得分:1)

你可能会这样做,但Windows更直接支持的是使用MsgWaitForMultipleObjects,当你收到消息时会返回你传递的任何句柄(可以是只发出一个信号。

或者,您可以使用ReadFileEx / WriteFileEx来执行I / O,并使用MsgWaitForMultipleObjectsEx。在这种情况下,您指定一个完成例程。执行会直接从您对MsgWaitForMultipleObjectsEx的调用跳转到您的完成例程,而无需查看消息/返回值以找出发生的情况,然后跳转到代码以适当地处理它。

无论哪种方式,您都可以继续处理其他Windows消息并处理I / O的完成,而无需轮询I / O完成。