<PackageReference Include="System.Threading.Tasks.Extensions" Version="4.5.3" />

System.Threading.Tasks.ValueTask

public struct ValueTask : IEquatable<ValueTask>
namespace System.Threading.Tasks { public readonly struct ValueTask : IEquatable<ValueTask> { public bool IsCompleted { get; } public bool IsCompletedSuccessfully { get; } public bool IsFaulted { get; } public bool IsCanceled { get; } public ValueTask(Task task); public ValueTask(IValueTaskSource source, short token); public bool Equals(ValueTask other); public static bool operator ==(ValueTask left, ValueTask right); public static bool operator !=(ValueTask left, ValueTask right); public Task AsTask(); public ValueTask Preserve(); public ValueTaskAwaiter GetAwaiter(); public ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext); } }