@Mirrah

Python как убрать задержки в потоках?

Я делаю программу, которая включается и выключается определенной клавишей на клавиатуре (используя pynput). Я поместил цикл прослушивания клавиатуры в первый поток, а цикл действий - во второй. Проблема в том, что после запуска кода он не сразу слушает клавиатуру, только через 9-10 секунд. И иногда он отказывается реагировать на кнопку Esc, а иногда работает. Как избавиться от задержки?

from threading import Thread
from pynput import keyboard
import time

flag = False
kill = False

def on_press(key):
    global flag
    global kill

    if key == keyboard.KeyCode.from_char('a'):
        print('pressed A')
        flag = not flag
    if key == keyboard.Key.esc:
        kill = True
        return False

def thr2():
    print('joining...')
    with keyboard.Listener(on_press=on_press) as listen:
        listen.join()

def thr1():
    while True:
        if kill:
            break
        if flag:
            print('looping....')
            time.sleep(0.4)

if __name__ == "__main__":
    thread1 = Thread(target=thr1)
    thread2 = Thread(target=thr2)
    thread1.start()
    thread2.start()
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы