【发布时间】:2012-06-04 15:49:04
【问题描述】:
有没有办法在设置事件时生成窗口消息?我想设置一个重叠的 I/O 操作,所以它不会阻塞,但我不想轮询它的状态。我知道我可以使用线程,但我只需要它来执行此操作。似乎有更好的方法。
【问题讨论】:
标签: winapi overlapped-io
有没有办法在设置事件时生成窗口消息?我想设置一个重叠的 I/O 操作,所以它不会阻塞,但我不想轮询它的状态。我知道我可以使用线程,但我只需要它来执行此操作。似乎有更好的方法。
【问题讨论】:
标签: winapi overlapped-io
您可能可以这样做,但 Windows 更直接支持的是使用 MsgWaitForMultipleObjects,当您收到消息时将返回它,或您传递的任何句柄(只能是一个) 发出信号。
或者,您可以使用ReadFileEx/WriteFileEx 来执行I/O,并使用MsgWaitForMultipleObjectsEx。在这种情况下,您指定一个完成例程。执行直接从您对MsgWaitForMultipleObjectsEx 的调用跳转到您的完成例程,而无需查看消息/返回值来确定发生了什么,然后跳转到代码以进行适当的处理。
无论哪种方式,您都将继续处理其他 Windows 消息并处理 I/O 的完成情况,而不需要轮询 I/O 完成情况。
【讨论】: