特定のキーの組み合わせを押すたびに短いスクリプトを起動するプログラムを作成しました。 私は次のようにpyHookを利用スレッド使用しています:captureF
は、特定のキーの組み合わせを押した後、押した場合は、スクリプトを起動しているかどうかをテスト関数であるキーボードイベントをポーリングするPythonプログラムのCPU使用率が高い
def logic():
global running
hm = HookManager()
hm.KeyDown = captureF
hm.HookKeyboard()
while(running):
pythoncom.PumpWaitingMessages()
return
を。
メインスレッドでは、オプションと終了を含むWindowsトレイguiを実行しています(終了時に、フラグをrunning
に設定してロジックスレッドを終了させます)。
問題は私が今直面しているのは、プログラムが起動されたとき(CPUが使用していないときでも)CPU使用率が常に高くなっていることです。より効率的な方法でそれを行う方法がわかりません。
ご協力ありがとうございます。メッセージのためPumpWaitingMessages
チェックをし、何もメッセージが(それがノンブロッキングである)
あなたが遅延のいくつかの種類を挿入する必要がない場合はすぐに返されます。
ブロックしている 'pythoncom.PumpMessages()'を使用できませんか?つまり、whileループは必要ありません –