如何在python中中止gech()?

How to abort gech () in python?

我有 3 个活动线程。 其中之一激活其他线程并使用 getch() 检测 ESC 键,如果按下则程序关闭。

当其他两个线程完成操作(未按 ESC)时,它们成功关闭,但第一个线程仍在等待按下 ESC。因此程序仍然是运行.

class tracking():
def __init__(self):    
    self.tecla = '\x1b' #ESC
    self.case = None

def pressed(self, case):
    self.case = getch()

def inicio(self): #The Thread in question calls this function
    Thread(target=self.pressed(self.case)).start()      
    while True:
        if self.case is not None:
            if self.case == self.tecla:
                sys.exit()
            else:
                self.case = None
                self.pressed(self.case)

那是因为 getch() 是同步的。有几个选项: