wxpython 3.0 & multiprocessing - 从后台进程更新 GUI

wxpython 3.0 & multiprocessing - update GUI from background process

在我的 wxpython GUI 应用程序中,我有一个 rsync 任务,我以 multiprocessing.Process.

开始

想法是使用此后台进程的恒定输出更新 wx.textCtrl。

我正在使用 pubsub 订阅方法。

功能正常,但我无法让 textCtrl 更新。

如果我使用 CallAfter 方法,我会得到这个 crash/error:

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec(). Break on THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC() to debug.

如果我不使用该方法并尝试将文本直接附加到 textctrl,则什么也不会发生。

有什么想法吗?

谢谢!

亚当

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