如何在Windows上中断选择呼叫?

我知道这可能是一个基本问题,但我想听听实现它的最佳方法.

所以问题.我有一个使用调用选择的驱动程序线程,我有一个GUI线程,有时需要通过写入同一进程(GUI FD或其他东西)中的某个文件描述符来中断select.我在UNIX中使用过管道,但我对Windows的套接字没有经验,所以我不确定应该使用什么样的FD.非常感谢示例,但​​不是必需的).

谢谢.

最佳答案 select()不是在Windows下实现异步I / O的最佳选择.不幸的是,windows上的select()调用仅适用于套接字句柄,而不适用于管道或fie句柄.

你应该看看overlapped I/O.

通过在重叠结构中使用事件,可以使行为接近select().套接字上的任何事件都将触发一个事件,您可以使用WaitForMultipleObjects()等待该事件.现在,您的GUI线程可以通过设置您使用CreateEvent()调用创建的特定(单独)事件来发信号通知I / O线程.

点赞