前回に引き続き UniTask を触ってみました。



今回は UniTask の処理の中断。

参考資料

参考資料はこちら。

UniTask ではない、C# 標準の Task と考え方は同じでよさそうかな?

ということで、まずは例外処理などは省いて、シンプルにやってみることに。


やってみた

前回 UniTask で動かしたものはこんな感じ。


途中キャンセルするとこんな感じ。


コードはこんな感じ。



ポイントはこんな感じでしょうか。
  • UniTask の処理の引数に CancellationTokenSource.Token を持たせる
  • キャンセル要求は CancellationTokenSource.Cancel で行う。ただしこれだけではキャンセルされないので注意
  • 実際のキャンセル処理は UniTask の処理内で 
    if( CancellationTokenSource.Token.IsCancellationRequested ) の中に記述する

たしかにコルーチンの中断よりも少し複雑ですね。ただ、やっていることの意味は理解しやすいので、覚えられないほどでもないかなというのが、現時点での印象です。何度も繰り返し書く必要が出てくるとつらいかもしれませんが。


今回は以上です。