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

System.Threading.RateLimiting.PartitionedRateLimiter<TResource>

public abstract class PartitionedRateLimiter<TResource> : IAsyncDisposable, IDisposable
Represents a limiter type that users interact with to determine if an operation can proceed given a specific TResource.
namespace System.Threading.RateLimiting { public abstract class PartitionedRateLimiter<[System.Runtime.CompilerServices.Nullable(2)] TResource> : IAsyncDisposable, IDisposable { public abstract RateLimiterStatistics GetStatistics(TResource resource); public RateLimitLease AttemptAcquire(TResource resource, int permitCount = 1); protected abstract RateLimitLease AttemptAcquireCore(TResource resource, int permitCount); public ValueTask<RateLimitLease> AcquireAsync(TResource resource, int permitCount = 1, CancellationToken cancellationToken = default(CancellationToken)); protected abstract ValueTask<RateLimitLease> AcquireAsyncCore(TResource resource, int permitCount, CancellationToken cancellationToken); protected virtual void Dispose(bool disposing); public void Dispose(); protected virtual ValueTask DisposeAsyncCore(); public ValueTask DisposeAsync(); public PartitionedRateLimiter<TOuter> WithTranslatedKey<[System.Runtime.CompilerServices.Nullable(2)] TOuter>(Func<TOuter, TResource> keyAdapter, bool leaveOpen); protected PartitionedRateLimiter(); } }