C#遇到错误:System.Threading.Tasks.TaskCanceledException:已取消一个任务

网上看了很多 都是说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>
System.Threading.Tasks是一个命名空间,提供了用于创建和管理任务的类和方法。它的作用是通过任务的概念来解决线程处理的复杂问题。任务(Task)包含一个操作,以及依赖哪个任务的完成才能开始。在使用System.Threading.Tasks时,可以使用Task类来创建和执行任务,使用Task.ContinueWith方法来定义任务之间的依赖关系,使用Task.WaitAll方法来阻塞调用任务,直到等待的所有任务完成为止,使用Task.WhenAll方法返回一个任务,允许使用async关键字等待结果,而不会阻塞等待任务。此外,还可以使用Task.Delay方法来指定从这个方法返回的任务完成前要等待的毫秒数。\[2\]在使用System.Threading.Tasks时,可以使用async和await关键字来简化异步编程的代码,使代码更加清晰和易于理解。\[3\] #### 引用[.reference_title] - *1* [C#任务Task应用详解](https://blog.csdn.net/weixin_36609037/article/details/126541489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [.NET 4.0 System.Threading.Tasks学习笔记](https://blog.csdn.net/weixin_34223655/article/details/85449464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [System.Threading.Tasks](https://blog.csdn.net/weixin_30699831/article/details/96191950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值