鉴于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。
答案 0 :(得分:10)
您可以注册取消令牌时要调用的Action
:
token.Register(() => { /*...*/ });