【发布时间】:2020-07-21 10:36:55
【问题描述】:
我不明白 qt 如何在同一个事件循环中处理事件(例如定时器事件、套接字事件等)和信号。据我了解,定时器和套接字事件是通过 select 系统调用(在 Unix 等操作系统中)处理的。
由于 select 系统调用,事件循环如何在睡眠时处理信号。
【问题讨论】:
-
你在说什么睡觉?您所在的上下文中的事件循环不会休眠,直到您自己在代码中调用长阻塞操作。阅读这个关于事件的好答案并用 Qt stackoverflow.com/a/3794944/4149835 发出信号
-
感谢您的回答。我读了那个答案,但我不明白它如何使用相同的 select 系统调用处理计时器事件、套接字事件和信号。它可以使用文件描述符和选择的超时参数来处理套接字事件和计时器事件。但是 Qt 信号如何通知选择调用。
标签: qt qevent qeventloop