1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CancellationTokenSorce周りの覚書

Posted at

CancellationTokenSorce と CancellationToken の違いがいまいちわからなかったので整理した

そもそもCancelとは

その関数内の処理をただ止めること。
止めるだけなので、エラー吐かせたりCancelしたことを知るにはもう一工夫必要。

CancellationTokenSorceとは

  • CancellationTokenを取得できる
  • Cancelそのものや、CancelAfterで時間指定のCancelができる
  • Cancelしたい関数内でCancellationTokenSorceを作ってもCancelできない
  • 使い終わったらDisposeが必要(しないと次回以降の起動などでおかしくなる)

つまり、Cancelそのものを担当している方。
Cancelしたい関数の外で作って渡して、関数内でCancelしてもらう感じ。
→そもそもCancellationTokenSorceが渡せない関数はCancelできない。

CancellationTokenとは

  • CancellationTokenSorceから取得する
  • IsCancellationRequestedやThrowIfCancellationRequestedで、Cancelされたかどうかがわかる
    (呼び出したその時点でしかわからないので注意。ずっと監視してくれる便利道具ではない。)
  • Cancelされたときの処理も登録できる

つまり、Cancelされたときの処理を担当している方。
Cancelしたときにエラー吐かせるなどしたいときに使う。

まとめ

Cancelしたい関数の外でCancellationTokenSorceを作って渡す、終わったらDisposeするのが基本。
Cancelしたときに何か処理をしたかったらCancellationTokenを取得する。

参考文献

CancellationTokenSorceについて↓

CancellationTokenについて↓

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?