wxpython 3.0&多处理 - 从后台进程更新GUI

时间:2016-06-06 22:08:17

标签: python wxpython multiprocessing publish-subscribe

从我的wxpython GUI应用程序中,我有一个rsync任务,我将其作为multiprocessing.Process启动。

我们的想法是使用此后台进程的常量输出更新wx.textCtrl。

我正在使用pubsub订阅方法。

这些功能正常但我无法更新textCtrl。

如果我使用CallAfter方法,我会收到此崩溃/错误:

  

该进程已分叉,您无法使用此CoreFoundation   功能安全。你必须exec()。打断   的 THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY ___ YOU_MUST_EXEC ()   调试。

如果我不使用该方法,并尝试将文本直接附加到textctrl,则不会发生任何事情。

有什么想法吗?

谢谢!

亚当

1 个答案:

答案 0 :(得分:1)

问题是子进程无法写回主进程。使用queue将消息传递回主进程,并从等待来自队列的消息的计时器或后台线程中更新控件。