gpt4 book ai didi

.net - .NET应用未关闭

转载 作者:行者123 更新时间:2023-12-03 12:52:38 26 4
gpt4 key购买 nike

我有一个相当WPF的应用程序,它的行为很奇怪:在调试时将其关闭后,该窗口将关闭,但调试(因此应用程序本身)仍在运行。我说的是单击窗口上的关闭按钮-通过单击“停止调试”来强制关闭。

我猜想即使UI线程完成时,某些后台线程仍在运行。 我没有使用Thread类的任何多线程代码,但是我正在使用一个名为Ookii.Dialogs的库,该库包含一个ProgressWindow类,该类的用法与旧的BackgroundWorker非常相似。该类是我的主要怀疑对象,但是我相信我使用的是正确的-只是在DoWork处理程序中处理长时间运行的操作,通过调用ReportProgress显示进度,并使用Show()方法启动它们,类似于RunWorkerAsync,但是还显示进度窗口。操作完成后,窗口将自动关闭。

假设这不是库的问题,而用BackgroundWorker替换它(这是相同的,只是没有进度窗口)仍然会显示相同的症状。知道如何开始诊断吗?

最佳答案

不知道您是否遇到相同的问题,但是同样的事情发生在我们身上。
Application类中,尝试设置ShutdownMode = ShutdownMode.OnMainWindowClose。默认值为最后一个窗口(即使没有打开的窗口,这仍然是一个问题)。

MSDN Documentation for Shutdownmode

public partial class App : Application
{
protected override void OnStartup(StartupEventArgs args)
{
///Set this to OnMainWindowClose (defaults to OnLastWindowClose)
///This seems to prevent the app from running after the main window closes
///--alternate solution would be to call Application.Current.Shutdown() from MainWindow.OnClosing
ShutdownMode = ShutdownMode.OnMainWindowClose;
}
}

关于.net - .NET应用未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789301/

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