如何在python中中止gech()?

时间:2018-03-08 11:33:13

标签: python multithreading getch

我有3个活动的主题。 其中一个激活其他Thread并使用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)

1 个答案:

答案 0 :(得分:0)

那是因为select是同步的。有几个选择: