私はPython IDEをビルドしています。これは、カーソルの下にある名前のすべての出現箇所を強調表示する必要があります(Jediライブラリを使用)。発生を発見するプロセスは非常に遅くなる可能性があります。Pythonでキャンセル可能なタスクを作成するには?
GUIがフリーズするのを避けるために、別のスレッドで検索を実行することもできますが、ユーザーが数単語をすばやく移動すると、古くなったタスクで作業中にバックグラウンドスレッドが盛り上がる可能性があります。ユーザーが新しい名前に移動したときの前回の検索をキャンセルしたいと思います。
スレッドを殺すように見えますが、Pythonでは複雑です。 Python 3.4以降で簡単にキャンセルできるバックグラウンドタスクを作成するための他のオプションは何ですか?
いいです。使いやすさ、柔軟性、そして使いやすさという点で、作業キューをどのように使用するのと比較しますか? –
'Future.cancel'はまだ開始されていないタスクに対してのみ動作することに注意してください。進行中のタスクは、完了するまでバックグラウンドで実行し続けます。 – noxdafox
私はそれがほとんどオーバーヘッドを持っていないと非常に使いやすいと言います。提出、結果検索、キャンセルはすべて1ライナーです。作業待ち行列は素晴らしいですが、この状況では過度の過労、IMHOです。 – leovp