私がここでやろうとしているのは、キーボード割り込みを使用してプログラム内の進行中のすべてのスレッドを終了することです。キーボード割り込みですべてのスレッドを閉じる
for i in taskDictionary:
try:
sleep(60)
thread = Thread(target = mainModule.executeThread)
thread.start()
except KeyboardInterrupt:
thread.__stop()
プログラム自体がスレッドに影響を与え、さらにはシーケンシャルに起動するオプションを有する異なる変数のトンを占め、はるかに複雑である:これは、スレッドが作成された私のコードの下に切り詰めバージョンですモードでは、タスクはスレッド化されず、代わりに1つずつ起動されるため、ちょうど私が思いついたこの小さなバリエーションにいくつかの問題があるかもしれません。 私は50/50の結果を生み出す方法でこれを行っています。割り込みは機能しますが、スレッドは決してきれいに終了しません。時々彼らは行くつもりですが、将来のスレッドの実行を中断します。何回か、割り込みに関する大規模なエラーで終了し、割り込みがまったく何もしない場合もあります。前回実行したプログラムでは、将来のスレッドの実行を停止しましたが、現在のスレッドは停止しませんでした。 スレッドが実際に実行されているモジュールに入ることなくスレッドを終了する方法はありますか?
スレッドの協力を得て、任意の方法で削除することができます。スレッドの協力がなければ、安全な方法はなく、すべての道路が痛みを引き起こします。 –
華麗な答え!正確には私が探していたものではありませんでしたが、私が必要としていたものにロジックを適応させるのに十分な広さでした!ありがとう! – Joe
私はスレッドを使用しています。なぜなら、Trueループの間は無限にしたくないからです。これはあなたのCPUの時間をすべて無駄にします。私はこのようなことをやったことがあり、睡眠を取らないと、一度に**秒**の間CPU%を100%まで上昇させ、小さな睡眠でこれはほんの少しだけ助けになります。これを行う方法はありますか? – dylnmc