c# - 取消 CancellationToken 时如何运行代码?

标签 c# task cancellation-token

给定一个 CancellationToken,我想在取消 CancellationToken 时对表示异步操作的对象调用“取消”方法。这可能吗?

背景:我正在通过以下方式(或多或少)与表示异步操作的 API 交互:

class AsyncOp
{
    void Start(Action callback);//returns 'immediately', while beginning an async op. Callback is called when the operation completes.
    void Cancel();//aborts async operation and calls callback
}

我可以很容易地将其包装在方法 Task DoAsyncOp() 中,但我想支持取消,例如 Task DoAsyncOp(CancellationToken cancellationToken)。在我的例子中,当 CancellationToken 被取消时,调用 AsyncOp 对象上的 Cancel。

最佳答案

您可以注册一个 Action 以在 token 被取消时调用:

token.Register(() => { /*...*/ });

关于c# - 取消 CancellationToken 时如何运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23517505/

相关文章:

java - 了解线程中更新 GUI 的工作原理

c# - 将取消 token 添加到有进度的异步任务

C#超时后中止异步HttpWebRequest

c# - Windows 8 中的 StorageFile 访问被拒绝异常

C# 显示隐藏窗口

c# - 在使用 Xamarin 完成方法之前,UI 不会更新

linq - Task.WhenAll 何时枚举?

c# - Lambda 函数处理程序 C# 中的取消标记

c# - 删除动态控件 : Clear is working but not remove

c# - 获取类中所有方法的属性列表