Winapi 事件触发窗口消息

Winapi 事件触发窗口消息,winapi,overlapped-io,Winapi,Overlapped Io,设置事件时是否有方法生成窗口消息?我想设置一个重叠的I/O操作,这样它就不会阻塞,但我不想轮询它的状态。我知道我可以使用线程,但我只需要它来执行此操作。似乎有更好的方法。您可能可以这样做,但Windows更直接支持的是使用MsgWaitForMultipleObjects,它将在您收到消息时返回,或者通知您传递的任何句柄(只能是一个) 或者,您可以使用ReadFileEx/writefilex执行I/O,并使用MsgWaitForMultipleObjectsEx。在本例中,指定一个完成例程。执

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

您可能可以这样做,但Windows更直接支持的是使用
MsgWaitForMultipleObjects
,它将在您收到消息时返回,或者通知您传递的任何句柄(只能是一个)

或者,您可以使用
ReadFileEx
/
writefilex
执行I/O,并使用
MsgWaitForMultipleObjectsEx
。在本例中,指定一个完成例程。执行直接从对
MsgWaitForMultipleObjectsEx
的调用跳到完成例程,而无需查看消息/返回值来找出发生了什么,然后跳到代码中进行适当处理

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