如何取消CancellationToken时运行代码?

时间:2014-05-07 12:13:25

标签: 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。

1 个答案:

答案 0 :(得分:10)

您可以注册取消令牌时要调用的Action

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