<PackageReference Include="System.Reactive" Version="4.1.3" />

TaskHelpers

static class TaskHelpers
using System.Threading; using System.Threading.Tasks; namespace System.Reactive.Concurrency { internal static class TaskHelpers { private const int MaxDelay = int.MaxValue; public static Task Delay(TimeSpan delay, CancellationToken token) { if ((long)delay.TotalMilliseconds > 2147483647) { TimeSpan remainder = delay - TimeSpan.FromMilliseconds(2147483647); return Task.Delay(2147483647, token).ContinueWith((Task _) => Delay(remainder, token), TaskContinuationOptions.ExecuteSynchronously).Unwrap(); } return Task.Delay(delay, token); } } }