Обработка WebException с очередью

У меня есть небольшой проект на C#, он отправляет уникальные данные с помощью WebRequest на интернет-сайт и возвращает HttpWebResponse. Теперь я хочу разобраться с ситуацией, когда нет подключения к интернету или другие думают, что данные не могут отправлять или получать.

На мой взгляд, это лучший способ справиться с этим с помощью Webexception в try / catch.

Но это важно для Webexception, программа запоминает действие и пробует снова, если интернет или услуга снова доступны.

Как, по вашему мнению, лучше всего это реализовать?

Я читал об Очереди... Может быть, поместить действие в Очередь, если Webexception сработает, и попробовать снова, если Служба снова станет доступной?

3 ответа

Решение

@ Денис Я нашел этот вопрос интересным, и у меня был шанс.

https://dotnetfiddle.net/2lx8FI

  • Push-очередь, путем преобразования List<string> для IObservableпоследовательность. Thread.Sleep контролирует, как часто элемент читается из очереди.
  • В случае WebException, мы ждем некоторое время и добавляем URL обратно List<string>
  • Чтение URL-адресов из пользовательского ввода только для целей тестирования.

Я надеюсь, что это помогает

Я думаю, что простой способ - создать цикл для вызова логического метода, если внутри этого происходит исключение, возвращает false и цикл продолжается.

Таймер должен работать. Когда выдается исключение, сбросьте таймер. Когда интервал наступает, вы можете попробовать снова подключиться

Другие вопросы по тегам