はじめに
C#の非同期プログラミングは、効率的なアプリケーション開発に不可欠です。しかし、非同期操作の管理と制御は複雑になることがあります。ここでは、C#における非同期操作のキャンセルを管理するための重要な構造体の一つ、CancellationToken
について詳しく解説します。
CancellationTokenの基本
CancellationToken
は、非同期操作のキャンセル要求を表すために使用されます。これは、タスクや操作がキャンセルされたかどうかを確認するために使用され、直接的にキャンセルを開始する能力はありません。主に、IsCancellationRequested
プロパティをチェックすることで、取り消し要求があったかどうかを監視します。
プロパティとメソッド
CancellationToken
には、キャンセル処理をより細かく制御するためのいくつかの重要なプロパティとメソッドがあります。最も一般的なのはIsCancellationRequested
ですが、それ以外にもThrowIfCancellationRequested
メソッドがあり、これは取り消しが要求された場合に例外をスローするために使用されます。
使用例
ここでは、実際のC#コードを使ってCancellationToken
の使用方法を示します。たとえば、非同期メソッドにCancellationTokenを渡し、定期的にIsCancellationRequested
プロパティをチェックして、要求された場合は処理を中断する方法です。
C#
public async Task LongRunningOperation(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
// 長時間実行される操作
}
if (cancellationToken.IsCancellationRequested)
{
// キャンセル処理
}
}
まとめ
CancellationToken
は、C#の非同期プログラミングにおいて、タスクや操作の取り消し要求を効率的に処理するために使用される重要な構造体です。これにより、プログラムのレスポンシブ性と信頼性が向上し、UXが改善されます。