Possible Duplicate:
How would you implement a basic event-loop?
这并不是一个特定于语言的问题。事件循环的有效实现是什么?到目前为止我只遇到过这样的事情:
while (true) {
handleEvents();
sleep(100);
}
我认为这不是最好的方法 - 如果 sleep 持续时间太短,它会消耗大量 cpu,如果 sleep 时间太长,应用程序将非常无响应。
那么,有没有更好的方法呢?
谢谢
最佳答案
最常见的模式是:
while (WaitForNextEvent()) {
HandleEvent();
}
WaitForNextEvent()
返回 false
表示没有更多事件需要处理,最重要的是,能够执行阻塞等待 下一个事件。
例如,事件源可能是文件、套接字、线程的消息队列或其他 waitable object某种。在这种情况下,您可以保证 HandleEvent()
仅在事件准备就绪时运行,并在事件准备就绪后不久触发。
关于events - 高效的事件循环实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6634131/