UniTask.WithCancellationはもうない

UniTask のバージョンを 2.1.2 から 2.2.3 にアップデートしたところ、以下のエラーがUnity Edtitorに表示されました。

error CS1929: 'UniTask' does not contain a definition for 'WithCancellation' and the best extension method overload 'EnumeratorAsyncExtensions.WithCancellation(IEnumerator, CancellationToken)' requires a receiver of type 'IEnumerator'

UniTask.WithCancellationのほうの名前をAttachExternalCancellationに変更しました。

neue cc – C#のasync_await再考, タイムアウト処理のベストプラクティス, UniTask v2.2.0

とのことですので、こちらを

await FooAsync().WithCancellation(_cancellationToken);

このように書き換えてあげればこれまで通り動きました。

await FooAsync().AttachExternalCancellation(_cancellationToken);

ただ、

使いたくない雰囲気を漂わせてる名前であるとおり、あんま使わないでねという意図が込められています。

neue cc – C#のasync_await再考, タイムアウト処理のベストプラクティス, UniTask v2.2.0

とのことなので、使わないようにする方が正しそうです。

Leave a Reply