我遇到了一个非常可重复的情况,如果我单击 C# WinForms 应用程序中的按钮,该应用程序总是会意外关闭,但也会正常关闭。我所说的优雅是指我在 app_FormClosing 事件中放置了一个断点,然后它就在那里中断。问题是,我不知道是什么导致应用程序关闭!我在我能找到的每个Environment.Exit、Application.Exit、this.Close 上都设置了中断,并且它们都没有在调试器中被命中。该应用程序此时不应关闭,但它会非常重复且干净地关闭。
在 VS2010 中,我启用了所有异常类型的中断,并且没有发生异常。
如何找出导致我的应用程序关闭的原因?有办法追踪吗?
编辑:在 FormClosing 事件期间,e.CloseReason 设置为 CloseReason.None。我不明白这种情况如何或为何会发生。
最佳答案
在创建主窗体之前 Hook 以下事件:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += Application_ThreadException;
将输出发送到 MessageBox、文件或其他位置,以查看是否遇到任何未知异常。
关于C# 应用程序无明显原因退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147701/