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 <AsyncGPUReadbackRequest> ToUniTask(this AsyncGPUReadbackRequest asyncOperation, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { if (asyncOperation.done) { return(UniTask.FromResult(asyncOperation)); } return(new UniTask <AsyncGPUReadbackRequest>(AsyncGPUReadbackRequestAwaiterConfiguredSource.Create(asyncOperation, timing, 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 (handle.IsDone) { return(UniTask.FromResult(handle.Result)); } return(new UniTask <T>(AsyncOperationHandleConfiguredSource <T> .Create(handle, timing, progress, 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> 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)); }
public virtual UniTask <T> ReadAsync(CancellationToken cancellationToken = default(CancellationToken)) { if (this.TryRead(out var item)) { return(UniTask.FromResult(item)); } return(ReadAsyncCore(cancellationToken)); }
public static UniTask <UnityWebRequest> ToUniTask(this UnityWebRequestAsyncOperation asyncOperation, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (asyncOperation.isDone) { return(UniTask.FromResult(asyncOperation.webRequest)); } return(new UniTask <UnityWebRequest>(UnityWebRequestAsyncOperationConfiguredSource.Create(asyncOperation, timing, progress, cancellationToken, out var token), token)); }
public static UniTask <UnityWebRequest> WithCancellation(this UnityWebRequestAsyncOperation asyncOperation, CancellationToken cancellationToken) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (asyncOperation.isDone) { return(UniTask.FromResult(asyncOperation.webRequest)); } return(new UniTask <UnityWebRequest>(UnityWebRequestAsyncOperationConfiguredSource.Create(asyncOperation, PlayerLoopTiming.Update, null, cancellationToken, out var token), token)); }
public static UniTask <AssetBundle> WithCancellation(this AssetBundleCreateRequest asyncOperation, CancellationToken cancellationToken) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (asyncOperation.isDone) { return(UniTask.FromResult(asyncOperation.assetBundle)); } return(new UniTask <AssetBundle>(AssetBundleCreateRequestConfiguredSource.Create(asyncOperation, PlayerLoopTiming.Update, null, cancellationToken, out var token), token)); }
public static UniTask <T[]> WhenAll <T>(params UniTask <T>[] tasks) { if (tasks.Length == 0) { return(UniTask.FromResult(Array.Empty <T>())); } return(new UniTask <T[]>(new WhenAllPromise <T>(tasks, tasks.Length), 0)); }
public static UniTask <UnityEngine.Object[]> AwaitForAllAssets(this AssetBundleRequest asyncOperation, CancellationToken cancellationToken) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <UnityEngine.Object[]>(cancellationToken)); } if (asyncOperation.isDone) { return(UniTask.FromResult <UnityEngine.Object[]>(asyncOperation.allAssets)); } return(new UniTask <UnityEngine.Object[]>(AssetBundleRequestAllAssetsWithCancellationSource.Create(asyncOperation, cancellationToken, out var token), token)); }
public static UniTask <UnityEngine.Object[]> AwaitForAllAssets(this AssetBundleRequest asyncOperation, IProgress <float> progress = null, PlayerLoopTiming timing = PlayerLoopTiming.Update, CancellationToken cancellationToken = default(CancellationToken)) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <UnityEngine.Object[]>(cancellationToken)); } if (asyncOperation.isDone) { return(UniTask.FromResult(asyncOperation.allAssets)); } return(new UniTask <UnityEngine.Object[]>(AssetBundleRequestAllAssetsConfiguredSource.Create(asyncOperation, timing, progress, cancellationToken, out var token), token)); }
public static UniTask <UnityEngine.Object> WithCancellation(this ResourceRequest asyncOperation, CancellationToken cancellationToken) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <UnityEngine.Object>(cancellationToken)); } if (asyncOperation.isDone) { return(UniTask.FromResult(asyncOperation.asset)); } return(new UniTask <UnityEngine.Object>(ResourceRequestWithCancellationSource.Create(asyncOperation, cancellationToken, out var token), token)); }
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)); }
public static UniTask <UnityWebRequest> WithCancellation(this UnityWebRequestAsyncOperation asyncOperation, CancellationToken cancellationToken) { Error.ThrowArgumentNullException(asyncOperation, nameof(asyncOperation)); if (cancellationToken.IsCancellationRequested) { return(UniTask.FromCanceled <UnityWebRequest>(cancellationToken)); } if (asyncOperation.isDone) { if (asyncOperation.webRequest.IsError()) { return(UniTask.FromException <UnityWebRequest>(new UnityWebRequestException(asyncOperation.webRequest))); } return(UniTask.FromResult(asyncOperation.webRequest)); } return(new UniTask <UnityWebRequest>(UnityWebRequestAsyncOperationWithCancellationSource.Create(asyncOperation, cancellationToken, out var token), token)); }