0

マルチスレッドを使用する必要があるため、各呼び出しは独自のスレッドで処理されますが、何らかの理由でアプリがクラッシュし、予期せずすぐに閉じて、次のエラーが発生しwxpythonます。pjsip

Gdk-ERROR **: The program 'python' received an X Window System error.

これはおそらくプログラムのバグを反映しています。

エラーは でしたRenderBadPicture (invalid Picture parameter)

python: xcb_io.c:221: poll_for_event: Assertion `(((long) (event_sequence) - (long) (dpy->request)) <= 0)' failed.

これはマルチスレッドとwxpython. と を使用してみwx.callafter()ましwx.lib.pubusub.Subscribeたが、それでも同じ問題が発生します。

4

1 に答える 1

1

wxPython に関連する場合、メイン スレッド以外のスレッドからのものはすべて、スレッド セーフなメソッドでラップする必要があります。wx.CallAfter、wx.CallLater、wx.PostEvent の 3 つがあります。別のスレッドから wxPython メソッドに直接アクセスしようとすると、ほぼ確実に問題が発生します。Pubsub は素晴らしいですが、スレッドセーフではありません。これもスレッドセーフなメソッドの 1 つでラップする必要があります。

wxPython wikiにはスレッド化の例がいくつかあり、このトピックに関する簡単なチュートリアルも書きました。これらが役に立たない場合は、小さくて実行可能な例を作成し、ここまたは wxPython メーリング リストに投稿する必要があります。

于 2012-08-09T13:47:11.383 に答える