pyobjc作为通过管道与主进程通信的子进程不起作用

我正在尝试从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()



长风秋雁
浏览 143回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python