3

私はまだ python スクリプトにかなり慣れていないので、マルチスレッド サポートを追加することで、いくつかのツールを高速化し、滑らかにしようとしています。ここでのワークフロー理論の一部を誤解している可能性があるので、これを別の方法で行う必要がある場合は、自由に考え方を変えてください。基本的に私がやろうとしていることは次のとおりです。

==================================================================
###Pseudo-code -- I apologize if this does not follow existing conventions
main_function()
    if do_stuff_function is not running:
        Thread1 = new thread running do_stuff_function

do_stuff_function(args)
    do some stuff
    wait for 60 seconds (possibly using time.sleep())
    end thread (tell main_function that the thread is done)
==================================================================
###Abridged code
def main(self):
      check = True
      index = 0
      While index < 5:
          if check == True:
              check = False
              thread1 = threading.Thread(target=self.doStuff, args=(self, index))



def do_stuff(self, index):
     ###Stuff happens here####

     ###iterate index and somehow return it (possibly a global variable)
     time.sleep(60)
     ###somehow end the thread (still not entirely sure how to do that)

===================================================================

ノート:

-- このツールには gui があり、メイン ループで time.sleep() を実行すると、すべてがロックしてフリーズする傾向があるため、マルチスレッドが適切な解決策になると考えました (問題がある場合は、お気軽に修正してください)。違う)。または、待機中にスレッド全体をフリーズしない別の待機方法かもしれません。

-- while ループでプログラムがフリーズします。ループせずにこのチェックを行う方法はありますか?

-- また、これにいくつかのエラー チェックを追加しようと考えているため、do_stuff() の結果に基づいて、さまざまなエラー コードが返されます (覚えておくべきことです)。

情報が不十分でしたら申し訳ありません。必要な場合は、より具体的な情報をお気軽にお尋ねください。本当にみんな、私が得ることができるすべての助けに感謝します、私はただこのことをしっかりと理解しようとしています! ありがとう!

4

1 に答える 1