Protos
@Protos
Спрашивай - отвечу

C# пример очереди запросов webclient.DownloadStringTaskAsync?

Из-за ограничения 3 запроса в секунду, постоянно получаю бан на 2,5 сек. Все обращения к VK у меня в виде webclient.DownloadStringTaskAsync(...).
Помогите реализовать очередь сбор вызовов webclient.DownloadStringTaskAsync из множества одновременно работающих функций в одну очередь.
  • Вопрос задан
  • 677 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rou1997
@Rou1997
Когда с одного пришел ответ, делайте задержку и отправляйте следующий.
Ответ написан
Комментировать
ImmortalCAT
@ImmortalCAT
C# loving
По разному можно реализовать...
Thread.Sleep(3000);
Task.Delay(3000);
и ещё какие то конструкции, гуглите, а лучше посмотрите реализацию VK API на github, там называется vknet
Ответ написан
a1antoo
@a1antoo
Full stack C#/Javascript developer
Как вариант, можно сделать клас, скажем, QueuedWebClientи реализовать в нем необходимые методы для загрузки данных, например тот же DownloadString. В класе сделать статический екземпляр Queueи просто добавлять в очередь ссылки по которым нужно скачать данные или делегаты, где выполняется какая-то логика загрузки. Потом если не хотите блокировать основной поток можете использовать какой-то таймер и по нему вытягивать с очереди следующий елемент. В сам клас QueuedWebClientможно добавить событие, которое будет инициироватся, когда будут готовые скачанные данные.
Но это как один из вариантов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы