我正在开发一些WPF程序,并在"SyringeTricontinent.cs"类中创建了一个名为"thCheckIdle"的线程,该线程在"MainWindow.xaml.cs"中生成。我想在程序退出时杀死这个线程,所以我在应用程序类中添加了退出事件并在下面制作了代码:
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();
}
}
但是弹出"WHALE.exe中发生了类型为'System.NullReferenceException'的未处理异常"消息不起作用,我发现即使执行显示主窗口的程序,MainWindow的状态也为空。
退出主程序时如何终止该线程?
你可以将其设为Background Thread
,这样它就不会在主线程完成时阻止你的应用退出。就说 thCheckIdle.IsBackground = true;
创建它时。
https://learn.microsoft.com/en-us/dotnet/api/system.threading.thread.isbackground?view=netframework-4.7.1