我有一个应用程序,在取消对话框时出现了奇怪的错误。如果取消了该对话框,应用程序无法继续执行,因此退出,但由于某种原因它没有正常工作,并因此保持运行状态并崩溃。
我已调试此问题,但不知何故,应用程序在Application.Exit调用之后仍然继续运行。我正在调试模式下运行,这很重要,因为少量代码依赖于定义RELEASE变量。以下是我的应用程序退出代码。我已跟踪代码并进入了ExitApp方法,但它仍继续执行并返回控制权给调用者,最终导致崩溃。
这是一个通过远程桌面连接提供报告的应用程序,所以退出代码有点奇怪。它试图在RELEASE模式下终止远程会话,但只有当测试运行时我才想要关闭开发机器。
private void ExitApp()
{
HardTerminalExit();
Application.Exit();
}
// When in Debug mode running on a development computer, this will not run to avoid shutting down the dev computer
// When in release mode the Remote Connection or other computer this is run on will be shut down.
[Conditional("RELEASE")]
private void HardTerminalExit()
{
WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, false);
}
我已经在Application.Exit代码行下方运行了调试器,但什么也没有发生,当我跨过那行代码时控制权返回给调用者。
发生了什么?这是一个Windows Forms应用程序。