public static Task AsTask(this IAsyncAction source, CancellationToken cancellationToken) => source.AsTaskCore(cancellationToken);
public static Task AsTask(this IAsyncAction source) => source.AsTaskCore(CancellationToken.None);