如何用快捷键控制子进程结束
可以使用keyboard
来实现这个功能
以keyboard
的wait()
方法为例,代码如下:
import multiprocessing
import time
import keyboard
def fun():
print('方法被调用')
cnt = 1
while True:
print('\r子进程运行检测计数: ' + str(cnt), end='')
cnt += 1
time.sleep(1)
if __name__ == '__main__':
multiprocessing.freeze_support()
print('按f11开关子进程')
keyboard.wait('f11')
ceshi = multiprocessing.Process(target=fun, )
ceshi.start()
keyboard.wait('f11')
if ceshi.is_alive():
ceshi.terminate()
ceshi.join()
print('\n主动结束子进程')
在pycharm中运行结果如下
在cmd中运行结果如下
值得注意的是
wait()
方法接收的参数可以是热键组合,比如说wait('ctrl', 'v')
wait()
方法只是监听按键事件,不会对该按键原有的功能造成影响。比如wait('ctrl', 'v')
,按下('ctrl', 'v')
后,使用粘贴功能的同时,会触发wait()
事件。