From 9d5a4a9f5a9e545495b406b324515199a0f22a08 Mon Sep 17 00:00:00 2001 From: yomunsam Date: Sat, 7 Mar 2020 20:10:59 +0800 Subject: [PATCH] It seems that the problem has not been completely resolved just now --- Assets/UniRx.Async/UnityAsyncExtensions.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Assets/UniRx.Async/UnityAsyncExtensions.cs b/Assets/UniRx.Async/UnityAsyncExtensions.cs index fdb6cd3..68aca43 100644 --- a/Assets/UniRx.Async/UnityAsyncExtensions.cs +++ b/Assets/UniRx.Async/UnityAsyncExtensions.cs @@ -792,14 +792,18 @@ namespace UniRx.Async public void UnsafeOnCompleted(Action continuation) { - if(asyncOperation != null && asyncOperation.isDone) - { - continuation?.Invoke(); - return; - } + Error.ThrowWhenContinuationIsAlreadyRegistered(continuationAction); continuationAction = continuation.AsFuncOfT(); - asyncOperation.completed += continuationAction; + lock (asyncOperation) + { + if (asyncOperation.isDone) + { + continuation?.Invoke(); + return; + } + asyncOperation.completed += continuationAction; + } } }