我有一个简单的 MFC 对话框应用程序。我想做一些重叠的 I/O。在单独的线程中等待重叠的事件句柄是一件痛苦的事情。我想知道是否有一个函数调用可以将 Windows 消息注册到可等待的句柄?很像 WSAAsyncSelect 的工作方式,但没有套接字,只有一个通用的 Win32 可等待句柄(事件、互斥锁、管道等)。
我的环境:Windows XP,Visual Studio 2010
谢谢!
最佳答案
鉴于您的限制,我会使用 RegisterWaitForSingleObject()注册一个回调例程,当您等待的对象收到信号时将调用该例程。
回调函数很简单 - 它只需要向感兴趣的窗口发布一条用户定义的消息,表明事件已发出信号。
也就是说,如果您使用的是 ReadFileEx() , WriteFileEx() ,或其他支持完成回调的 I/O 函数,您可以使用该回调来实现类似的功能。
关于c++ - 在 MFC 中发出 Win32 事件信号时注册以接收 Windows 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106208/