Я использую краткий RateGate class, чтобы ограничить количество запросов, отправляемых на сервер.Как изменить ограничение скорости при использовании RateGate?
Мой код выглядит примерно так:
var RateLimit = 35;
using(var RateGate = new RateGate(RateLimit, TimeSpan.FromSeconds(1)))
{
for(var Run = 1; Run <= 50; Run++)
{
for(var Batch = 0; Batch < 200; Batch++)
{
// Do some work, then...
MyClass MyClass;
if(MyClass.RateLimitHit)
{
RateLimit--;
}
RateGate.WaitToProceed();
}
}
}
Внутри if(MyClass.RateLimitHit)
, мне нужно понизить предел скорости на 1. Не только переменная RateLimit
, но предел работает в реальной RateGate
.
В классе RateGate, я вижу это:
/// <summary>
/// Number of occurrences allowed per unit of time.
/// </summary>
public int Occurrences { get; private set; }
Мой вопрос: если я изменить private set;
к и добавить RateGate.Occurrences = RateLimit;
после RateLimit--;
будет это делать то, что я хочу?
Я пробовал, но похоже, что RateGate
продолжает выполнять с максимальной скоростью 35/с.
Просто для уточнения ... для щедрот вы ищете модифицированный класс RateGate, или новый класс, который наследует и переопределяет/расширяют некоторые функции из класса RateGate? –