wxpython应用程序使用pjsip与多线程崩溃

时间:2012-08-08 14:27:23

标签: python multithreading wxpython pjsip

我正在使用wxpythonpjsip进行应用,我需要使用多线程,因此每个调用都由它自己的线程处理,但由于某种原因,应用程序崩溃并意外关闭立即离开以下错误:

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,但我仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

与wxPython相关的主线程以外的线程中的任何内容都必须包含在threadsafe方法中。其中有3个:wx.CallAfter,wx.CallLater和wx.PostEvent。如果您尝试直接从单独的线程访问wxPython方法,那么您几乎肯定会遇到问题。 Pubsub很棒,但它不是线程安全的。它也必须包含在一个线程安全方法中。

wxPython wiki有几个线程示例,我也在这个主题上写了一个简单的tutorial。如果这些没有帮助,那么你需要创建一个小的,可运行的例子并在此处或在wxPython邮件列表上发布。