我正在尝试从pyobjc gui(osx状态栏中的菜单)向我的应用程序的主进程发送信号。具体来说,我正在运行包装在类中的gui,并将其包装在进程中,并且试图通过管道将gui中的消息发送到主进程。
当我使用一种简单的方法将数据放入管道时,我的代码起作用了。消息被传递到主进程,产生结果。main process... recv(): foo当我在子进程中启动gui并尝试将数据放入管道时,例如,当我单击菜单选项“启动”时,什么也没有发生。主流程行从未打印过,据我所知,主流程已被阻塞。
我假设这与pyobjc中的事件循环有关。我该怎么做才能使这项工作?如何将pyobjc代码作为子进程运行?
main.py
import sys
from multiprocessing import Process, Pipe
from userinterface import OSXstatusbaritem
def f2(pipe):
print "starting subprocess f2"
print pipe.send("foo")
pipe.close()
相关分类