2011-12-17 24 views
1

xlibをC++で使用すると、イベントを非同期で処理する方法がありますか? XNextEventは、イベントが到着するまでブロックします。別のスレッドからこの呼び出しを行う唯一の方法はXNextEventですか?私はXCBが開発中であり、並行性をサポートしていることを認識しています(私は思っていますか?)しかし、私はこれをxlibだけで教育のために行う必要があります。ありがとう:)XLib非同期イベント処理(XBCなし)

答えて

6

XPendingでイベントをチェックしてください。 ブロックされません。

while (XPending(dpy)) 
{ 
    XEvent ev; 
    XNextEvent(dpy, &ev); 
    .... 
    if (ev.type == KeyPress) 
    { 
     .... 
    } 
} 
+0

ありがとうございます!これは私の質問に答える:) – Ell

関連する問題