public static UniTask ToUniTask(this AsyncOperationHandle handle, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled(cancellationToken)); } if (!handle.IsValid()) { // autoReleaseHandle:true handle is invalid(immediately internal handle == null) so return completed. return(UniTask.CompletedTask); } if (handle.IsDone) { if (handle.Status == AsyncOperationStatus.Failed) { return(UniTask.FromException(handle.OperationException)); } return(UniTask.CompletedTask); } return(new UniTask(AsyncOperationHandleConfiguredSource.Create(handle, timing, progress, cancellationToken, out var token), token)); }
public static UniTask <T> ToUniTask <T>(this AsyncOperationHandle <T> handle, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <T>(cancellationToken)); } if (!handle.IsValid()) { throw new Exception("Attempting to use an invalid operation handle"); } if (handle.IsDone) { if (handle.Status == AsyncOperationStatus.Failed) { return(UniTask.FromException <T>(handle.OperationException)); } return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleConfiguredSource <T> .Create(handle, timing, progress, cancellationToken, out var token), token)); }
public static UniTask ToUniTask(this AsyncOperationHandle handle, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { if (handle.IsDone) { return(UniTask.CompletedTask); } return(new UniTask(AsyncOperationHandleConfiguredSource.Create(handle, timing, progress, cancellationToken, out var token), token)); }
public static UniTask WithCancellation(this AsyncOperationHandle handle, CancellationToken cancellationToken) { if (handle.IsDone) { return(UniTask.CompletedTask); } return(new UniTask(AsyncOperationHandleConfiguredSource.Create(handle, PlayerLoopTiming.Update, null, cancellationToken, out var token), token)); }
public static UniTask <T> WithCancellation <T>(this AsyncOperationHandle <T> handle, CancellationToken cancellationToken) { if (handle.IsDone) { return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleConfiguredSource <T> .Create(handle, PlayerLoopTiming.Update, null, cancellationToken, out var token), token)); }
public static UniTask <T> ToUniTask <T>(this AsyncOperationHandle <T> handle, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellation = default(CancellationToken)) { if (handle.IsDone) { return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleConfiguredSource <T> .Create(handle, timing, progress, cancellation, out var token), token)); }
public static UniTask ToUniTask(this AsyncOperationHandle handle, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(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(AsyncOperationHandleConfiguredSource.Create(handle, timing, progress, cancellationToken, out var token), token)); }