public static UniTask <T[]> .Awaiter GetAwaiter <T>(this IEnumerable <UniTask <T> > tasks) { return(UniTask.WhenAll(tasks).GetAwaiter()); }
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)); }
public Awaiter(UniTask task) { this.task = task; }
public static IEnumerator ToCoroutine <T>(this UniTask <T> task, Action <T> resultHandler = null, Action <Exception> exceptionHandler = null) { return(new ToCoroutineEnumerator <T>(task, resultHandler, exceptionHandler)); }
public static IEnumerator ToCoroutine(this UniTask task, Action <Exception> exceptionHandler = null) { return(new ToCoroutineEnumerator(task, exceptionHandler)); }
/// <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) {
/// <summary> /// Convert UniTask -> UniTask[AsyncUnit]. /// </summary> public static UniTask <AsyncUnit> AsAsyncUnitUniTask(this UniTask task) { // use implicit conversion return(task); }
/// <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(); }
public UniTask ToUniTask() { return(UniTask.Yield(timing, CancellationToken.None)); }