38 SystemIdentity = systemIdentity ??
throw new ArgumentNullException(nameof(systemIdentity));
40 ArgumentNullException.ThrowIfNull(asyncDelayer);
42 ArgumentNullException.ThrowIfNull(onExpiry);
43 var now = DateTimeOffset.UtcNow;
45 throw new ArgumentOutOfRangeException(nameof(expiry), expiry,
"expiry must be greater than DateTimeOffset.UtcNow!");
49 async Task DisposeOnExipiry(CancellationToken cancellationToken)
54 await asyncDelayer.
Delay(expiry - now, cancellationToken);
56 catch (OperationCanceledException)