子进程结束后获取信号

时间:2015-08-05 19:22:17

标签: python pyqt4 popen

我正在使用subprocess.Popen函数来运行命令行。不必使用Popen.wait(),我想在完成使用Popen.poll()后检查子进程。有关如何做到这一点的任何建议吗?

import subprocess
job = subprocess.Popen('command line', shell = True)
print(job.poll())

实际上,我在子进程启动之前打印了job.poll()。我希望它等到它结束。我不想使用等待,因为在该过程结束之前,其余的用户界面将变得无法使用。这是在PyQt4中。

1 个答案:

答案 0 :(得分:0)

正如Python - wait on a condition without high cpu usage所说,现在只有两种方法可以等待:轮询或设置/使用通知系统。

如果它的用户界面 - 你没有忘记你总是有一个通知系统 - 消息队列?

此外,您始终可以(并且,如果它的UI,应始终)在工作线程中执行任何耗时的任务。如果是哪种情况,您可以使用同步呼叫。