From 0a203c8db9fc0bf9b68a3c71a9b1c6cd545672fe Mon Sep 17 00:00:00 2001 From: hadashiA Date: Thu, 2 Nov 2023 09:58:52 +0900 Subject: [PATCH] Cache Action in advance --- .../Plugins/UniTask/Runtime/UnityAsyncExtensions.cs | 10 +++++----- .../Plugins/UniTask/Runtime/UnityAsyncExtensions.tt | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs index dc24ad0..915d55d 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.cs @@ -102,6 +102,7 @@ namespace Cysharp.Threading.Tasks AsyncOperationConfiguredSource() { + continuationAction = Continuation; } public static IUniTaskSource Create(AsyncOperation asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -123,7 +124,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled) @@ -322,6 +322,7 @@ namespace Cysharp.Threading.Tasks ResourceRequestConfiguredSource() { + continuationAction = Continuation; } public static IUniTaskSource Create(ResourceRequest asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -343,7 +344,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled) @@ -547,6 +547,7 @@ namespace Cysharp.Threading.Tasks AssetBundleRequestConfiguredSource() { + continuationAction = Continuation; } public static IUniTaskSource Create(AssetBundleRequest asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -568,7 +569,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled) @@ -773,6 +773,7 @@ namespace Cysharp.Threading.Tasks AssetBundleCreateRequestConfiguredSource() { + continuationAction = Continuation; } public static IUniTaskSource Create(AssetBundleCreateRequest asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -794,7 +795,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled) @@ -1014,6 +1014,7 @@ namespace Cysharp.Threading.Tasks UnityWebRequestAsyncOperationConfiguredSource() { + continuationAction = Continuation; } public static IUniTaskSource Create(UnityWebRequestAsyncOperation asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -1035,7 +1036,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt index 105893d..e3e57d4 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/UnityAsyncExtensions.tt @@ -165,6 +165,7 @@ namespace Cysharp.Threading.Tasks <#= t.typeName #>ConfiguredSource() { + continuationAction = Continuation; } public static <#= ToIUniTaskSourceReturnType(t.returnType) #> Create(<#= t.typeName #> asyncOperation, PlayerLoopTiming timing, IProgress progress, bool handleImmediately, CancellationToken cancellationToken, out short token) @@ -186,7 +187,6 @@ namespace Cysharp.Threading.Tasks if (handleImmediately) { - result.continuationAction = result.Continuation; asyncOperation.completed += result.continuationAction; if (cancellationToken.CanBeCanceled)