Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2017, 14:54   #1
GhostWarrior
 
Регистрация: 16.05.2014
Сообщений: 3
По умолчанию Время ожидания операции истекло

************** Текст исключения **************
System.Net.WebException: Время ожидания операции истекло
в System.Net.HttpWebRequest.GetRespon se()
в BOT.Get_http.GET_http(String url) в c:\Users....BOT\Get_http.cs:строка 20
в BOT.Form1.MainTimer_Tick(Object sender, EventArgs e) в c:\Users...BOT\Form1.cs:строка 63
в System.Windows.Forms.Timer.OnTick(E ventArgs e)
в System.Windows.Forms.Timer.TimerNat iveWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.C allback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Может кто подскажет, как избежать подобную проблему? Программа посылает get запрос по таймеру каждые 3 секунды (желательно делать запрос максимально часто). Бывает выскакивает подобное исключение. Насколько я понимаю ответ иногда не успевает прийти за эти 3 секунды, а таймер уже должен сработать, но код висит на месте, ожидая ответ от сервера. Так ли это?
Как реализовать код чтобы избежать подобное? Всё работает в одном потоке.
GhostWarrior вне форума Ответить с цитированием
Старый 05.07.2017, 15:48   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Зачем нужен таймер? Получили ответ - сразу отправляйте новый запрос, вот и будет максимально часто. или просто оберните всё в try catch блок для подавления исключения. На одном тике таймера поломалось - на следующем заработает как нужно.
pu4koff вне форума Ответить с цитированием
Старый 05.07.2017, 16:38   #3
GhostWarrior
 
Регистрация: 16.05.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Зачем нужен таймер? Получили ответ - сразу отправляйте новый запрос, вот и будет максимально часто. или просто оберните всё в try catch блок для подавления исключения. На одном тике таймера поломалось - на следующем заработает как нужно.
Без таймера отправляя постоянно новый запрос в цикле интерфейс виснет и не обновляются datagridview и label. С потоками немного знаком, но решить задачу с помощью них не смог. Необходимо из нового потока передавать данные в первый поток, но там надо будет использовать метод invoke, с этим у меня проблемы
GhostWarrior вне форума Ответить с цитированием
Старый 07.07.2017, 10:48   #4
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Забудьте про таймеры - это пережиток однопроцессорных систем. Для программирования на таймерах уже лет 15 ниче нового.
Делайте на потоках.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ODBC SQL Server Driver. Истекло время ожидания запроса Maxjuvefan БД в Delphi 3 17.09.2015 02:27
Время ожидания подключения к БД Pavlov_yu Microsoft Office Excel 0 27.02.2015 05:31
Истекло время ожидания (Timeout). Время ожидания истекло до завершения операции или сервер не отвечает. kgs_forum C# (си шарп) 1 20.08.2013 20:14
Время ожидания истекло Swatch Microsoft Office Access 3 05.12.2012 13:06
Ошибка "Время ожидания истекло" Kveldulv Microsoft Office Excel 0 16.02.2010 13:31