Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

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


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

************** Текст исключения **************
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, 16:48   #2
pu4koff
Профессионал
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,639
Репутация: 3613
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ODBC SQL Server Driver. Истекло время ожидания запроса Maxjuvefan БД в Delphi 3 17.09.2015 03:27
Время ожидания подключения к БД Pavlov_yu Microsoft Office Excel 0 27.02.2015 06: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 14:31


15:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru