27 lines
641 B
C#
27 lines
641 B
C#
using System.Threading.Tasks;
|
|
using System.Collections;
|
|
|
|
namespace PashaBibko.PenguinChase.Extensions
|
|
{
|
|
public sealed class Result<T>
|
|
{
|
|
public T Value { get; set; }
|
|
}
|
|
|
|
public static class TaskExtensions
|
|
{
|
|
public static IEnumerator Await<T>(this Task<T> task, Result<T> result)
|
|
where T : class
|
|
{
|
|
// Waits until the task is completed
|
|
while (!task.IsCompleted)
|
|
{
|
|
yield return null;
|
|
}
|
|
|
|
// Has to return the value like this because of the wonders of C#
|
|
result.Value = task.Result;
|
|
}
|
|
}
|
|
}
|