gpt4 book ai didi

c# - 为什么我的 C# WPF 程序在 Application.Shutdown() 之后继续执行行?

转载 作者:太空狗 更新时间:2023-10-29 21:02:33 25 4
gpt4 key购买 nike

这是我弹出一个简单对话框(“选择器”)的代码片段。根据用户的输入,应用程序可能会终止。

    DPChooser chooser = new DPChooser(dataProvider);
if (chooser.ShowDialog() == false)
Application.Current.Shutdown(0);
else
ApplicationContext.Current.InitializeDataProviderAPI(chooser.DataProvider);
}

// more code continues here
// THE PROBLEM:
// Even when Shutdown() above is called,
// the execution continues proceeding past here!

我已经在调试器中运行了它,所以我知道 if 的计算结果为 false,而且我知道 Shutdown( ) 被调用。

那么为什么它不关闭呢?

注意:我认为这不是线程问题。我还没有在其他线程上开始任何事情。即使涉及线程,我仍然不希望该线程中的代码在 Shutdown() 之后继续执行。

最佳答案

Shutdown 会停止 Dispatcher 处理,并就 WPF 而言关闭应用程序,但实际上不会终止当前线程。

在您的情况下,您需要阻止该调用之外的代码运行。一个简单的返回就足够了:

 if (chooser.ShowDialog() == false)
{
Application.Current.Shutdown(0);
return;
}
else { //...

关于c# - 为什么我的 C# WPF 程序在 Application.Shutdown() 之后继续执行行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com