在子进程结束时获取信号



我正在使用子进程。Popen函数运行命令行。在不必使用Popen.wait()的情况下,我想在子进程完成后使用Popen.poll()检查它。有什么建议吗?

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

实际上,我在子进程启动之前打印了job.poll()。我想等到结束再说。我不想使用wait,因为在进程结束之前,用户界面的其余部分将无法使用。

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

如果它的UI -难道你没有忘记一个通知系统,你一直有-消息队列?

此外,你总是可以(如果是UI, 应该总是)在工作线程中执行任何耗时的任务。在这种情况下,您可以使用同步调用。

最新更新