网上看了很多 都是说task创建了一个任务,需在任务最后通过CancellationTokenSource调用订阅服务区关闭程序
但是在本人开发期间,并未调用Task,仍然出现此报错,且报错是偶发的。
后面我在 stackoverflow 上找到可能的原因 希望帮到大家
这里大概描述一下
在里面NET Framework 4.7.1和早期版本,WPF可能会创建一个系统。Windows。线程。上的调度程序。NET终结器线程。这是在中修复的。NET Framework 4.7.2及更高版本,使弱事件的清理具有线程意识。因此,WPF可能会调用System。Windows。线程。调度员。调用以完成清理过程。
在某些应用程序中,终结器定时的这种变化可能会在AppDomain或进程关闭期间导致异常。这通常出现在应用程序中,这些应用程序在进程或AppDomain关闭之前没有正确关闭工作线程上运行的调度程序。这样的应用程序应该注意正确地管理调度器的生命周期。
在里面NET Framework 4.7.2及更高版本,开发人员可以禁用此修复程序,以帮助缓解(但不是消除)由于清理更改可能出现的时间问题。
若要禁用清除中的更改,请使用以下AppContext标志。
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.MS.Internal.DoNotInvokeInWeakEventTableShutdownListener=true"/>
</runtime>
</configuration>