我有一个 GUI 脚本,其中包含我所有的 wxPython 代码,以及一个单独的 testSequences 模块,它有一堆我根据来自 GUI 的输入运行的任务。这些任务需要很长时间才能完成(从 20 秒到 3 分钟),所以我想线程化它们,否则 GUI 在它们运行时会锁定。我还需要它们一个接一个地运行,因为它们都使用相同的硬件。(我在线程背后的基本原理只是为了防止 GUI 锁定。)我想要一个“运行”消息(在它之后有不同数量的句点,即“运行”、“运行”、“运行.. "等),因此用户知道正在发生进度,即使它不可见。我希望这个脚本在单独的线程中运行测试序列,但顺序是,这样第二个线程就不会了 t 被创建并运行,直到第一个完成。由于这与线程的目的相反,我真的找不到任何关于如何做到这一点的信息......任何帮助将不胜感激。
提前致谢!
gui.py
import testSequences
from threading import Thread
#wxPython code for setting everything up here...
for j in range(5):
testThread = Thread(target=testSequences.test1)
testThread.start()
while testThread.isAlive():
#wait until the previous thread is complete
time.sleep(0.5)
i = (i+1) % 4
self.status.SetStatusText("Running"+'.'*i)
测试序列.py
import time
def test1():
for i in range(10):
print i
time.sleep(1)
(显然这不是实际的测试代码,但想法是一样的。)