我有一个相当 WPF 应用程序有一个奇怪的行为:在调试时关闭它后,窗口被关闭但调试(因此应用程序本身)仍在运行。我说的是单击窗口上的关闭按钮-通过单击停止调试来强制关闭有效。
我猜即使 UI 线程完成,一些后台线程仍在运行。我没有使用Thread
该类的任何多线程代码,但是我正在使用一个名为的库Ookii.Dialogs
,其中包含一个ProgressWindow
与旧的BackgroundWorker
. 这个类是我的主要嫌疑人,但是我相信我使用它正确 - 只是在处理程序中处理长时间运行的操作,DoWork
通过调用显示进度,并使用类似于ReportProgress
的方法启动它们,但它也显示了一个进度窗户。操作完成后,窗口自动关闭。Show()
RunWorkerAsync
假设这不是图书馆的错,用 a 替换它BackgroundWorker
(这将是相同的,只是没有进度窗口)仍然会显示相同的症状。知道如何开始诊断吗?