有没有办法在python进程的主线程关闭时执行函数(通常或带有未捕获的异常)?
我希望[PdfSharp][1]
能够提供该功能,但显然当主线程终止时它不会被调用 - 仅当所有线程终止时。因此,此代码无法正常工作:
Package Manage Console
我不想将子线程作为守护程序线程启动,因为我希望它在终止之前有机会自行清理。
我现在能想到的唯一解决方案是定期检查(从子线程或专用线程)主线程是否仍然存活,如果没有,则运行我需要的函数。
答案 0 :(得分:1)
一个想法是让另一个线程join
成为主线程,然后进行清理:
def cleanup_on_main_thread_exit():
threading.main_thread().join()
do_whatever()
threading.Thread(target=cleanup_on_main_thread_exit).start()