<PackageReference Include="Polly" Version="7.2.4" />

RateLimitPolicy

A rate-limit policy that can be applied to synchronous delegates.
using System; using System.Diagnostics; using System.Threading; namespace Polly.RateLimit { public class RateLimitPolicy : Policy, IRateLimitPolicy, IsPolicy { private readonly IRateLimiter _rateLimiter; internal RateLimitPolicy(IRateLimiter rateLimiter) : base((PolicyBuilder)null) { if (rateLimiter == null) throw new ArgumentNullException("rateLimiter"); _rateLimiter = rateLimiter; } [DebuggerStepThrough] protected override TResult Implementation<TResult>(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return RateLimitEngine.Implementation(_rateLimiter, null, action, context, cancellationToken); } } }