From 65b6553a1a811a4a5b61020bd540ad72580d5547 Mon Sep 17 00:00:00 2001 From: cuibeibei Date: Wed, 15 Jul 2020 15:14:08 +0800 Subject: [PATCH] [addressable]:fix CancellationToken can't stop UniTask #114 --- .../Addressables/AddressablesAsyncExtensions.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/External/Addressables/AddressablesAsyncExtensions.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/External/Addressables/AddressablesAsyncExtensions.cs index 81baf37..510f2dd 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/External/Addressables/AddressablesAsyncExtensions.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/External/Addressables/AddressablesAsyncExtensions.cs @@ -152,7 +152,11 @@ namespace Cysharp.Threading.Tasks else { completed = true; - if (handle.Status == AsyncOperationStatus.Failed) + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); + } + else if (handle.Status == AsyncOperationStatus.Failed) { core.TrySetException(handle.OperationException); } @@ -465,7 +469,11 @@ namespace Cysharp.Threading.Tasks else { completed = true; - if (handle.Status == AsyncOperationStatus.Failed) + if (cancellationToken.IsCancellationRequested) + { + core.TrySetCanceled(cancellationToken); + } + else if (handle.Status == AsyncOperationStatus.Failed) { core.TrySetException(handle.OperationException); }