TaskHelper
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Polly.Utils
{
internal static class TaskHelper
{
public static void GetResult([System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})] this ValueTask<VoidResult> task)
{
if (task.IsCompleted) {
VoidResult result = task.Result;
} else
task.Preserve().GetAwaiter().GetResult();
}
[System.Runtime.CompilerServices.NullableContext(1)]
public static TResult GetResult<[System.Runtime.CompilerServices.Nullable(2)] TResult>([System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})] this ValueTask<TResult> task)
{
if (task.IsCompleted)
return task.Result;
return task.Preserve().GetAwaiter().GetResult();
}
}
}