はじめに
C#の非同期プログラミングは、効率的なアプリケーション開発のための重要な機能です。特に、長時間実行されるタスクや操作をキャンセルする機能は、現代のアプリケーションにおいて欠かせません。この記事では、C#におけるキャンセル処理の核となるクラス、CancellationTokenSource
に焦点を当て、その使用方法を詳細に解説します。
CancellationTokenSourceとは
CancellationTokenSource
(CTS)は、取り消し要求を発行するために使用されるクラスです。CTSはCancellationToken
を生成し、これをタスクや操作に渡すことでキャンセルが可能になります。
基本的な使用方法
- CancellationTokenSourceのインスタンス化
var cancellationTokenSource = new CancellationTokenSource();
- CancellationTokenの取得
var token = cancellationTokenSource.Token;
- タスクへのトークンの渡し方
Task.Run(() => DoSomething(token), token);
- キャンセルの実行
cancellationTokenSource.Cancel();
コード例
以下は、CancellationTokenSource
を使用してタスクをキャンセルする簡単な例です:
C#
var cancellationTokenSource = new CancellationTokenSource();
var token = cancellationTokenSource.Token;
Task.Run(() =>
{
for (int i = 0; i < 100; i++)
{
if (token.IsCancellationRequested)
{
Console.WriteLine("キャンセルされました。");
break;
}
// 何かの処理
Thread.Sleep(100);
}
}, token);
// キャンセルの実行
cancellationTokenSource.Cancel();
まとめ
CancellationTokenSource
は、C#の非同期プログラミングにおける重要なクラスです。適切に使用することで、リソースの無駄遣いを防ぎ、UXを向上させることができます。この記事が、CTSの基本的な使用方法とその重要性を理解する助けになれば幸いです。