Bläddra i källkod

ETCancellationTokenSource在Cancel之后调用Dispose,防止using的用法取消了却没调用Dispose

tanghai 6 år sedan
förälder
incheckning
89854eeaaa
1 ändrade filer med 4 tillägg och 21 borttagningar
  1. 4 21
      Unity/Assets/Model/Base/Async/ETCancellationTokenSource.cs

+ 4 - 21
Unity/Assets/Model/Base/Async/ETCancellationTokenSource.cs

@@ -27,32 +27,15 @@ namespace ETModel
 
 
         public void Cancel()
         public void Cancel()
         {
         {
-            if (this.CancellationTokenSource == null)
-            {
-                return;
-            }
-            CancellationTokenSource cts = this.CancellationTokenSource;
-            this.CancellationTokenSource = null;
-            cts?.Cancel();
+            this.CancellationTokenSource.Cancel();
+            this.Dispose();
         }
         }
 
 
         public async ETVoid CancelAfter(long afterTimeCancel)
         public async ETVoid CancelAfter(long afterTimeCancel)
         {
         {
-            if (this.CancellationTokenSource == null)
-            {
-                return;
-            }
-            
             await Game.Scene.GetComponent<TimerComponent>().WaitAsync(afterTimeCancel);
             await Game.Scene.GetComponent<TimerComponent>().WaitAsync(afterTimeCancel);
-            
-            if (this.CancellationTokenSource == null)
-            {
-                return;
-            }
-            
-            CancellationTokenSource cts = this.CancellationTokenSource;
-            this.CancellationTokenSource = null;
-            cts?.Cancel();
+            this.CancellationTokenSource.Cancel();
+            this.Dispose();
         }
         }
 
 
         public CancellationToken Token
         public CancellationToken Token