好的,所以我了解如何使用CancellationTokenSource
. 在我看来,Task
“那种”类型会自动处理此异常 - 它将Task
's设置Status
为 Cancelled。
现在你实际上仍然必须处理OperationCancelledException
. 否则异常冒泡到Application.UnhandledException
. Task 本身可以识别它并在内部进行一些处理,但是您仍然需要将调用代码包装在 try 块中以避免未处理的异常。有时,这似乎是不必要的代码。如果用户按下取消,则取消Task
(显然任务本身也需要处理它)。我觉得不需要任何其他代码要求。只需检查Status
属性以了解任务的完成状态。
从语言设计的角度来看,这有什么具体原因吗?有没有其他方法可以将Status
属性设置为取消?