CancellationTokenRegistrationの理解とその役割

はじめに

CancellationTokenCancellationTokenSourceがキャンセル処理の基盤を形成する一方で、CancellationTokenRegistrationはこのプロセスにおける重要な役割を果たします。この投稿では、CancellationTokenRegistrationの概要とその使い方について解説します。

まだ上記クラスが分からない方は以下の記事を確認することをおすすめします。

【C#】CancellationTokenの使い方 【C#】CancellationTokenSourceの使い方

コールバック処理登録の流れ

CancellationTokenRegistrationは、CancellationTokenに対するコールバック登録を管理します。Registerメソッドを使用することで、キャンセルが要求された際に実行されるコールバック関数を登録できます。

C#
var cts = new CancellationTokenSource();
var token = cts.Token;
var registration = token.Register(() =>
{
    // キャンセル時に実行されるコード
});

登録解除の管理

CancellationTokenRegistrationを使用すると、登録したコールバックのライフサイクルをより細かく制御することができます。特に、Disposeメソッドを呼び出すことで、不要になったコールバックの登録を解除することが可能です。

C#
registration.Dispose();

実際の使用例

以下に、CancellationTokenCancellationTokenRegistrationを使用した実際の例を示します。この例では、非同期タスクがキャンセルされた場合に特定のクリーンアップ操作を実行するように設定しています。

HTML
var cts = new CancellationTokenSource();
var token = cts.Token;

var registration = token.Register(() =>
{
    // キャンセル時のクリーンアップ処理
});

Task.Run(() =>
{
    // タスクの実行内容
}, token);

まとめ

CancellationTokenRegistrationは、C#の非同期プログラミングにおいて、キャンセル時のコールバックを効果的に管理するための重要な機構です。適切に使用することで、非同期操作のキャンセル処理をより柔軟かつ効率的に行うことができます。

参考リンク

関連記事

【C#】CancellationTokenの使い方 【C#】CancellationTokenSourceの使い方

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です