在Python脚本中,我想连续调用一个函数,同时监听用户按下了 ESC 键,然后退出该程序。
这是我目前的代码:
import threading
import msvcrt
def wait_for_esc():
while True:
key = ord(msvcrt.getch())
if key == 27:
print("ESC")
exit(0)
def do_something():
while True:
call_function()
thread_1 = threading.Thread(name="wait_for_esc", target=wait_for_esc())
thread_2 = threading.Thread(name="do_something", target=do_something())
thread_1.start()
thread_2.start()
然而,似乎thread_1
阻止了thread_2
,直到任何键被按下。
两个线程彼此独立运行的可能解决方案是什么?
答案 0 :(得分:2)
当您将目标任务传递给线程时,您需要传递函数对象 - 而不是调用函数。您需要删除函数名末尾的paranthesis。
IO
它应该有用。