我有一个具有以下基本结构的程序:
while( true )
{
// get any X11 events
while( XPending( display ) > 0 )
{
// get an event using XNextEvent and do stuff with it
}
// draw to the display
}
程序正在渲染 opengl 场景。我遇到的问题是,当我单击并开始在窗口上拖动时,XPending
调用 get 会阻塞,直到我完成拖动序列,从而停止任何正在进行的动画。我可以通过让另一个线程发送 Expose
事件来解决此解决方案,从而唤醒 XPending
调用,但理想情况下,我希望有一个 X 函数来检查事件,但不这样做根本不阻塞。
最佳答案
如果您只想处理接收到的事件而不阻塞等待更多事件,请使用 XEventsQueued(display, QueuedAlready)
而不是 XPending(display)
。
关于c++ - XPending 函数被阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371782/