1. ホーム
  2. python

[解決済み] Pythonのバックグラウンド関数

2023-01-04 20:24:39

質問

Pythonスクリプトで、ユーザに画像を表示することがあります。画像は、時には、非常に大きくなることがあり、それらは頻繁に再利用されます。それらを表示することは重要ではありませんが、それらに関連するメッセージを表示することは重要です。必要な画像をダウンロードし、ローカルに保存する関数を用意しました。今は、ユーザーにメッセージを表示するコードとインラインで実行されていますが、ローカルでない画像では10秒以上かかることがあります。必要なときにこの関数を呼び出し、コードが実行され続ける間にバックグラウンドで実行する方法はないでしょうか?正しい画像が利用可能になるまで、私はデフォルトの画像を使用します。

どのように解決するのですか?

このようにします。

def function_that_downloads(my_args):
    # do some long download here

を入力したら、インラインで次のようにします。

import threading
def my_inline_function(some_args):
    # do some stuff
    download_thread = threading.Thread(target=function_that_downloads, name="Downloader", args=some_args)
    download_thread.start()
    # continue doing stuff

他のことに移る前に、スレッドが終了したかどうか確認するために download_thread.isAlive()