<PackageReference Include="System.Threading.RateLimiting" Version="11.0.0-preview.4.26230.115" />

System.Threading.RateLimiting.RateLimiter

public abstract class RateLimiter : IAsyncDisposable, IDisposable
Represents a limiter type that users interact with to determine if an operation can proceed.
namespace System.Threading.RateLimiting { public abstract class RateLimiter : IAsyncDisposable, IDisposable { public abstract TimeSpan? IdleDuration { get; } public static RateLimiter CreateChained(params RateLimiter[] limiters); public abstract RateLimiterStatistics GetStatistics(); public RateLimitLease AttemptAcquire(int permitCount = 1); protected abstract RateLimitLease AttemptAcquireCore(int permitCount); public ValueTask<RateLimitLease> AcquireAsync(int permitCount = 1, CancellationToken cancellationToken = default(CancellationToken)); protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(int permitCount, CancellationToken cancellationToken); protected virtual void Dispose(bool disposing); public void Dispose(); protected virtual ValueTask DisposeAsyncCore(); public ValueTask DisposeAsync(); protected RateLimiter(); } }