gpt4 book ai didi

python - 在等待事件的程序中捕获键盘中断

转载 作者:可可西里 更新时间:2023-11-01 13:34:35 27 4
gpt4 key购买 nike

以下程序会挂起终端,从而忽略 Ctrl+C。这很烦人,因为每次其中一个线程挂起时我都必须重新启动终端。

有什么方法可以在等待事件时捕获 KeyboardInterrupt 吗?

import threading
def main():
finished_event = threading.Event()
startThread(finished_event)
finished_event.wait()#I want to stop the program here
print('done!')
def startThread(evt):
"""Start a thread that will trigger evt when it is done"""
#evt.set()
if __name__ == '__main__':
main()

最佳答案

如果你想避免轮询,你可以使用signalpause()函数。模块而不是 finished_event.wait()signal.pause() 是一个阻塞函数,在进程接收到信号时解除阻塞。在这种情况下,当按下 ^C 时,SIGINT 信号会解除对函数的阻塞。请注意,根据文档,该功能不适用于 Windows。我已经在 Linux 上试过了,它对我有用。

我在这个 SO thread 中遇到了这个解决方案.

关于python - 在等待事件的程序中捕获键盘中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421133/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com