Exemplo n.º 1
0
 public static UniTask <T> WithCancellation <T>(this AsyncOperationHandle <T> handle, CancellationToken cancellationToken)
 {
     if (handle.IsDone)
     {
         return(UniTask.FromResult(handle.Result));
     }
     return(new UniTask <T>(AsyncOperationHandleWithCancellationSource <T> .Create(handle, cancellationToken, out var token), token));
 }
Exemplo n.º 2
0
 public static UniTask WithCancellation(this AsyncOperationHandle handle, CancellationToken cancellationToken)
 {
     if (handle.IsDone)
     {
         return(UniTask.CompletedTask);
     }
     return(new UniTask(AsyncOperationHandleWithCancellationSource.Create(handle, cancellationToken, out var token), token));
 }
Exemplo n.º 3
0
 public static UniTask <T> WithCancellation <T>(this AsyncOperationHandle <T> handle, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(UniTask.FromCanceled <T>(cancellationToken));
     }
     if (handle.IsDone)
     {
         if (handle.Status == AsyncOperationStatus.Failed)
         {
             return(UniTask.FromException <T>(handle.OperationException));
         }
         return(UniTask.FromResult(handle.Result));
     }
     return(new UniTask <T>(AsyncOperationHandleWithCancellationSource <T> .Create(handle, cancellationToken, out var token), token));
 }
Exemplo n.º 4
0
        public static UniTask WithCancellation(this AsyncOperationHandle handle, CancellationToken cancellationToken)
        {
            if (cancellationToken.IsCancellationRequested)
            {
                return(UniTask.FromCanceled(cancellationToken));
            }
            if (handle.IsDone)
            {
                if (handle.Status == AsyncOperationStatus.Failed)
                {
                    return(UniTask.FromException(handle.OperationException));
                }
                return(UniTask.CompletedTask);
            }

            return(new UniTask(AsyncOperationHandleWithCancellationSource.Create(handle, cancellationToken, out var token), token));
        }