【发布时间】:2011-03-19 04:34:09
【问题描述】:
我有一个运行两个线程的 Tkinter GUI,GUI 的主线程和工作线程。工作线程使用以下代码创建子进程:
myProcess = subprocess.Popen(['python', '-u', 'runTests.py'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
文件 runTests.py 进行一些设置,然后使用以下命令运行单元测试文件:
execfile('myUnitTests.py')
文件 myUnitTests.py 有几个单元测试,其中一些需要超过五分钟才能运行。 从 GUI 我单击一个按钮以停止运行测试。这反过来又使工作线程发送信号以停止子进程:
myProcess.terminate()
terminate 命令不会立即停止进程,它会等到当前单元测试完成运行后再终止进程?
我尝试使用os.kill,但得到的结果与terminate() 相同。
知道如何让我的程序响应更快,以便立即终止子进程吗?
【问题讨论】:
标签: python subprocess terminate execfile