gpt4 book ai didi

c# - 如果我打开另一个窗口,我的 WPF 应用程序仍在运行

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:50 24 4
gpt4 key购买 nike

我正在使用 mvvm 工具 kint 编写 WPF 应用程序。

在主窗口中,我在一个按钮中有一个命令,它使用以下命令打开另一个窗口:

catView.ShowDialog();

好吧,我关闭了那个窗口(使用关闭按钮或 X),当我关闭主窗口时,应用程序仍在运行,我必须终止它。

如果我不打开第二个窗口,应用程序会正常关闭。

为什么我打开另一个窗口无法正常关闭应用程序?

我在第二个窗口的关闭按钮中有这个:

this.DialogResult = true;
this.Close();

另一方面,我以这种方式启动应用程序(mvvm 工具包方式):

Views.MainView view = new Views.MainView();
view.DataContext = new ViewModels.MainViewModel();
view.Show();

非常感谢。

最佳答案

问题可能与打开和关闭窗口无关,而是该窗口内部的问题。

这通常发生在当您关闭应用程序时还有另一个线程仍在运行时,检查是否有任何可能在窗口代码中创建新线程(包括 System.Threading.Thread、ThreadPool、BackgroundWorker 和第 3 方组件),确保在关闭应用程序之前关闭所有后台线程(或者如果您不能关闭它们,至少将它们标记为后台线程)。

还要寻找任何可以打开另一个(不可见)窗口的东西,通常将窗口消息用作不可见窗口作为进程间通信机制,再次寻找可能这样做的第 3 方代码。

关于c# - 如果我打开另一个窗口,我的 WPF 应用程序仍在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1116133/

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