Skip to content

Instantly share code, notes, and snippets.

View baudii's full-sized avatar

Baudi Kurbanov baudii

View GitHub Profile
@baudii
baudii / AsTask.cs
Last active November 4, 2024 23:57
Simple extension method that converts Unity's AsyncOperation into a Task to use it with await. Unlike extending GetAwaiter(), this implementation supports cancellation tokens
public static Task AsTask(this AsyncOperation asyncOperation, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
if (asyncOperation == null)
throw new ArgumentNullException(nameof(asyncOperation), "Provided async operation is null");
if (asyncOperation.isDone)
return Task.CompletedTask;