すべてのwxPythonコードを含むGUIスクリプトと、GUIからの入力に基づいて実行する一連のタスクを含む別のtestSequencesモジュールがあります。タスクの完了には長い時間がかかるため(20秒から3分)、スレッド化する必要があります。そうしないと、実行中にGUIがロックされます。また、すべて同じハードウェアを使用しているため、次々に実行する必要があります。(スレッド化の背後にある私の理論的根拠は、GUIがロックアップしないようにすることです。)「実行中」メッセージ(その後のピリオドの数を変えて、「実行中」、「実行中」、「実行中」を表示したい。 "など)。これにより、ユーザーは、表示されていなくても、進行状況が発生していることを知ることができます。このスクリプトでテストシーケンスを別々のスレッドで実行したいのですが、2番目のスレッドが実行されないように順番に実行します。最初のものが完了するまで作成して実行します。これはスレッドの目的とは正反対なので、これを行う方法についての情報を実際に見つけることはできません...助けていただければ幸いです。
前もって感謝します!
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)
testSequences.py
import time
def test1():
for i in range(10):
print i
time.sleep(1)
(明らかに、これは実際のテストコードではありませんが、考え方は同じです。)