如何在Perl / Tk AnyEvent中停止MainLoop

我正在编写使用AnyEvent计时器的Perl / Tk程序.如果计时器处于活动状态,我在关闭窗口时遇到问题.我使这个窗口关闭处理程序:

$self -> {window} -> protocol( 'WM_DELETE_WINDOW' => sub {
                                                   undef $self -> {timer};
                                                   $self -> {window} -> destroy;
});

如果关闭窗口时计时器处于活动状态,则计时器停止,窗口关闭,但MainLoop不会停止.怎么了?

最佳答案 根据AnyEvent :: Impl :: Tk文档,创建了一个隐藏的Tk MainWindow来使事情正常工作.但似乎这个隐藏的窗口永远不会被自动销毁.作为一种解决方法,您可以自己完成:

$AnyEvent::Impl::Tk::mw->destroy;
点赞