memomem

備忘録・メモ置き場

TaskのCancel

EzTweenをテストしていて、内部のループ処理で

await Task.Delay(33, _token);
_token.ThrowIfCancellationRequested();

みたいな書き方をしていたんだけど、 Cancelのタイミングで処理が異なる。

await Task.Delay(33, _token);

Delay中にキャンセル発生だと、

System.Threading.Tasks.TaskCanceledException: A task was canceled.

が発生

_token.ThrowIfCancellationRequested();

のタイミングでキャンセルが発生すると、

 System.OperationCanceledException: The operation was canceled.

が発生。

TODO: 自作のClassで TaskCanceledException を発生させる方法はあるのか調べる。

blog.xin9le.net