<PackageReference Include="System.ServiceModel.Primitives" Version="6.0.0" />

System.Runtime.TimeoutHelper

struct TimeoutHelper
namespace System.Runtime { internal struct TimeoutHelper { public static readonly TimeSpan MaxWait; public TimeSpan OriginalTimeout { get; } public TimeoutHelper(TimeSpan timeout); public CancellationToken GetCancellationToken(); public Task<CancellationToken> GetCancellationTokenAsync(); public static bool IsTooLarge(TimeSpan timeout); public static TimeSpan FromMilliseconds(int milliseconds); public static int ToMilliseconds(TimeSpan timeout); public static TimeSpan Min(TimeSpan val1, TimeSpan val2); public static TimeSpan Add(TimeSpan timeout1, TimeSpan timeout2); public static DateTime Add(DateTime time, TimeSpan timeout); public static DateTime Subtract(DateTime time, TimeSpan timeout); public static TimeSpan Divide(TimeSpan timeout, int factor); public TimeSpan RemainingTime(); public TimeSpan ElapsedTime(); public static void ThrowIfNegativeArgument(TimeSpan timeout); public static void ThrowIfNegativeArgument(TimeSpan timeout, string argumentName); public static void ThrowIfNonPositiveArgument(TimeSpan timeout); public static void ThrowIfNonPositiveArgument(TimeSpan timeout, string argumentName); public static bool WaitOne(WaitHandle waitHandle, TimeSpan timeout); public static bool Wait(ManualResetEventSlim mres, TimeSpan timeout); } }