gpt4 book ai didi

.net - 如何将取消原因传递给.Net Task

转载 作者:行者123 更新时间:2023-12-01 04:40:51 25 4
gpt4 key购买 nike

.Net Task 支持 Task Cancellation ,但我想说明取消的原因。在我的情况下,我的任务因某种原因被取消,并且任务必须以不同的方式完成每个取消原因。

CancellationTokenSource 类没有设置该原因的某些属性。
如何将取消原因传递给Task?

最佳答案

您不能将原因或消息传递给 Task来说明原因。
Task 的方式通过传递 CancellationToken 取消实例(或其他操作)可以检查/注册以确定操作是否已取消的实例(这是任务取消的“合作”方面)。

但是,取消不会受到 CancellationToken 的影响。 ,它们受到 CancellationTokenSource 的影响通过调用各种 Cancel method 创建它们过载。

此外,当取消任务时,源自 OperationCancelledException 的异常被抛出,你可以捕获它。当您捕获该异常时,您可以查看 CancellationToken property ;这暴露了 CancellationToken用于取消操作。

从那里,您可以将其传递给 override of the Equals methodCancellationToken Token property 暴露的结构;如果调用Equals返回 true,则操作被 CancellationTokenSource 取消您可以将其与取消的原因相关联。

请注意,您可能必须深入研究 AggregateException 中包含的异常。 ,因为异步操作引发的大多数异常都包含在其中。

关于.net - 如何将取消原因传递给.Net Task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com