7

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 を呼び出します。

4

1 に答える 1

13

Actionトークンがキャンセルされたときに呼び出される を登録できます。

token.Register(() => { /*...*/ });
于 2014-05-07T12:14:41.853 に答える