У меня есть таймер в приложении C # (Win7 64).Каждые 20 минут обратный вызов таймера получает некоторые данные через HTTP.Это работает хорошо.Но если мой компьютер засыпает на несколько часов, а затем просыпается, я получаю сообщение об ошибке HTTP, говорящее «не могу найти сервер».Сервер работает постоянно, поэтому проблема не в этом.Я подозреваю, что настоящая причина заключается в том, что, поскольку обратный вызов таймера пропускает свой «временной интервал» в течение периода ожидания, он становится «просроченным» и выполняется сразу после пробуждения, не дожидаясь, пока ПК восстановит подключение к Интернету.,Я могу решить эту проблему, добавив Thread.Sleep (5000) в начале обратного вызова, но это немного затруднительно (установление интернет-соединения может занять больше времени).Мои вопросы:
После выхода из спящего режима Win действительно нужно несколько секунд для восстановления интернет-соединения?Мое соединение DSL, «всегда онлайн».
Есть ли системный вызов C #, который будет ждать, пока Win установит интернет-соединение (или истечет время ожидания, если этого не произойдет, скажем,, 20 секунд)?
РЕДАКТИРОВАТЬ: Просто нашел это: Проверьте сетевое соединение в C # .Не так просто, как я надеялся, требуется последовательность проверок: любое подключение к локальной сети, поиск DNS (вне локальной сети), проверка связи с сервером (проверка определенного сервера).