public static UniTask <T[]> .Awaiter GetAwaiter <T>(this IEnumerable <UniTask <T> > tasks)
 {
     return(UniTask.WhenAll(tasks).GetAwaiter());
 }
Exemple #2
0
 public static UniTask Timeout(this UniTask task, TimeSpan timeout, bool ignoreTimeScale = true, PlayerLoopTiming timeoutCheckTiming = PlayerLoopTiming.Update, CancellationTokenSource taskCancellationTokenSource = null)
 {
     return(Timeout(task.AsAsyncUnitUniTask(), timeout, ignoreTimeScale, timeoutCheckTiming, taskCancellationTokenSource));
 }
Exemple #3
0
 public Awaiter(UniTask task)
 {
     this.task = task;
 }
Exemple #4
0
 public static IEnumerator ToCoroutine <T>(this UniTask <T> task, Action <T> resultHandler = null, Action <Exception> exceptionHandler = null)
 {
     return(new ToCoroutineEnumerator <T>(task, resultHandler, exceptionHandler));
 }
Exemple #5
0
 public static IEnumerator ToCoroutine(this UniTask task, Action <Exception> exceptionHandler = null)
 {
     return(new ToCoroutineEnumerator(task, exceptionHandler));
 }
Exemple #6
0
 /// <summary>
 /// Timeout with suppress OperationCanceledException. Returns (bool IsTimeout, T Result).
 /// </summary>
 public static async UniTask <(bool IsTimeout, T Result)> TimeoutWithoutException <T>(this UniTask <T> task, TimeSpan timeout, bool ignoreTimeScale = true, PlayerLoopTiming timeoutCheckTiming = PlayerLoopTiming.Update, CancellationTokenSource taskCancellationTokenSource = null)
 {
Exemple #7
0
 /// <summary>
 /// Convert UniTask -> UniTask[AsyncUnit].
 /// </summary>
 public static UniTask <AsyncUnit> AsAsyncUnitUniTask(this UniTask task)
 {
     // use implicit conversion
     return(task);
 }
Exemple #8
0
        /// <summary>
        /// Timeout with suppress OperationCanceledException. Returns (bool, IsCacneled).
        /// </summary>
        public static async UniTask <bool> TimeoutWithoutException(this UniTask task, TimeSpan timeout, bool ignoreTimeScale = true, PlayerLoopTiming timeoutCheckTiming = PlayerLoopTiming.Update, CancellationTokenSource taskCancellationTokenSource = null)
        {
            var v = await TimeoutWithoutException(task.AsAsyncUnitUniTask(), timeout, ignoreTimeScale, timeoutCheckTiming, taskCancellationTokenSource);

            return(v.IsTimeout);
        }
        static async UniTaskVoid CancelAfterCore(CancellationTokenSource cts, UniTask delayTask)
        {
            await delayTask;

            cts.Cancel();
        }
        public static void CancelAfterSlim(this CancellationTokenSource cts, TimeSpan delayTimeSpan, bool ignoreTimeScale = false, PlayerLoopTiming delayTiming = PlayerLoopTiming.Update)
        {
            var delay = UniTask.Delay(delayTimeSpan, ignoreTimeScale, delayTiming);

            CancelAfterCore(cts, delay).Forget();
        }
        public static void CancelAfterSlim(this CancellationTokenSource cts, int millisecondsDelay, bool ignoreTimeScale = false, PlayerLoopTiming delayTiming = PlayerLoopTiming.Update)
        {
            var delay = UniTask.Delay(millisecondsDelay, ignoreTimeScale, delayTiming, cts.Token);

            CancelAfterCore(cts, delay).Forget();
        }
Exemple #12
0
 public UniTask ToUniTask()
 {
     return(UniTask.Yield(timing, CancellationToken.None));
 }