WPF中应用程序退出时如何杀死特定对象中的线程?

How to kill the thread in specific object when application exit in WPF?

我正在开发一些 WPF 程序并在 'SyringeTricontinent.cs' class 中创建一个名为 'thCheckIdle' 的线程,该线程在 'MainWindow.xaml.cs' 中生成。我想在程序退出时终止该线程,所以我在应用程序 class 中添加了退出事件,并在下面编写了代码:

    private void Application_Exit(object sender, ExitEventArgs e)
    {
        if(((MainWindow)System.Windows.Application.Current.MainWindow).syringe.thCheckIdle!= null)
        {
            ((MainWindow)System.Windows.Application.Current.MainWindow).syringe.thCheckIdle.Abort();
        }    
    }

但是弹出 "An unhandled exception of type 'System.NullReferenceException' occurred in WHALE.exe" 消息不起作用,我发现 MainWindow 的状态为空,即使程序执行显示 MainWindow。

如何在退出主程序时杀死该线程?

您可以将其设置为 Background Thread,这样它就不会在主线程完成时阻止您的应用程序退出。 说啊 thCheckIdle.IsBackground = true; 创建时。

https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.isbackground?view=netframework-4.7.1