namespace Azaion.Common.Extensions; public static class ThrottleExt { private static bool _throttleOn; public static async Task Throttle(this Func func, TimeSpan? throttleTime = null, CancellationToken cancellationToken = default) { if (_throttleOn) return; _throttleOn = true; await func(); _ = Task.Run(async () => { await Task.Delay(throttleTime ?? TimeSpan.FromMilliseconds(500), cancellationToken); _throttleOn = false; }, cancellationToken); } }