【问题标题】:Python multiprocessing and wxPython working togetherPython 多处理和 wxPython 协同工作
【发布时间】:2013-04-17 15:52:13
【问题描述】:

我遇到了以下问题:

我编写了一个脚本,该脚本最多同时运行四个进程。通过命令行使用它时就像一个魅力。 然后我决定用 wxPython 编写一个 GUI,我很快就发现 GUI 和脚本需要在不同的进程中运行,以便在另一个在做某事的同时保持可用。 (即能够在脚本运行时按下停止按钮)这也很完美。

现在的问题: 我只是在脚本运行时无法与 GUI 通信,或者至少我不知道如何通信。我试图通过将“self”(gui)传递给脚本来在文本窗口中写入输出,并且在脚本中我尝试执行诸如“self.outputWindow.WriteText('脚本正在执行 bla 1 of bla 10 ')"

我什至弄明白了为什么这不起作用:self(gui 对象)不可选择,这对于多处理是必需的,但我不知道我应该怎么做。

【问题讨论】:

  • 创建一个套接字服务器 :) 我认为 wx.CallAfter 对线程处理也很有帮助 :)
  • wx.CallAfter 是一个不错的功能,但它仍然需要“self”才能对 GUI 做一些事情。而且它无法访问它,因为我将使用它的地方是在脚本中,该脚本在与 GUI 不同的进程中运行。我不知道什么是套接字服务器,但我会读一读。
  • 你看过这个blog.pythonlibrary.org/2010/05/22/wxpython-and-threads ...mousevspython 非常适合 wxStuff :)

标签: python multithreading user-interface wxpython multiprocessing


【解决方案1】:

您可以在 wxPython 和线程上使用我的tutorial,尽管我不确定 Python 是否将这些线程均匀地分布到所有内核。我怀疑它没有。

幸运的是,有使用 wxPython 的多处理模块的示例。请参阅以下链接:

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多