public virtual Task RunAsync(CancellationToken cancellation) { return Task.Run(() => Run(), cancellation); }