Допустим, у меня есть функция, которая может быть запущена в любой момент времени, и у этой функции иногда есть много запросов, а иногда и мало, но я никогда не хочу делать больше 20 запросов в минуту. Однако я всегда хочу, чтобы все запросы выполнялись.
foreach (var user in users)
{
while (requestsInLastMinute < 20)
{
// Waiting for requests to get freed
Thread.Sleep(1000);
}
user.ExecuteRequest();
requestsInLastMinute++;
}
Существует ли эффективный способ сделать это, но где счетчик считает только запросы, выполненные в последнюю минуту?