出现“Application.Current.Shutdown() C# 应用程序未正确关闭。”的错误提示,通常是因为在应用程序关闭前还存在一些未处理的任务或资源。
以下是一种可能的解决方法,可以尝试在关闭应用程序前先处理完所有的任务和资源:
// 添加一个标志位来表示应用程序是否正在关闭
private bool isClosing = false;
// 在应用程序关闭时触发的事件
private void Application_Exit(object sender, ExitEventArgs e)
{
// 设置标志位为 true,表示应用程序正在关闭
isClosing = true;
// 如果还有未处理完的任务或资源,可以在这里处理
// 最后调用 Shutdown() 关闭应用程序
Application.Current.Shutdown();
}
// 在窗口关闭时触发的事件
private void MainWindow_Closing(object sender, CancelEventArgs e)
{
// 如果应用程序正在关闭,则不执行任何操作
if (isClosing)
return;
// 如果还有未处理完的任务或资源,可以在这里处理
// 否则,取消窗口关闭操作,继续运行应用程序
e.Cancel = true;
}
在上述代码中,我们添加了一个名为 isClosing
的标志位,在应用程序关闭前先将其设置为 true
,表示应用程序正在关闭。然后,在窗口关闭事件中,如果标志位为 true
,则不执行任何操作,否则可以在此处理未完成的任务或资源,并取消窗口关闭操作,继续运行应用程序。
同时,我们在应用程序的 Exit
事件中,先设置标志位为 true
,然后在处理完未完成的任务或资源后调用 Shutdown()
方法关闭应用程序。
这样就可以确保在关闭应用程序时所有的任务和资源都得到了正确处理,避免出现“应用程序未正确关闭”的错误提示。