Страница: 1 | 2 | 3 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Как сделать ожидание подключения интернет соед.?
     
    
Добавлено: 16.07.10 10:31
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Michael Melchakov | ICQ: 302272185
 Michael Melchakov | ICQ: 302272185 
      
       
  
То есть, мне необходимо скачать файл после подключения инета. Как проверить инет - использую такую вещь
 
    
Dim currentversion, lastversion As String
Try
lastversion = client.DownloadString("http://xxx.ru/about.txt")
Catch ex As Exception
client.Dispose()
MsgBox("Не удалось связаться с сервером.")
Exit Sub
End Try
client.Dispose()
Но это единичный случай проверки. Если зациклить данную вещь, то программа просто напросто зависает, до подключения. Если ставить на паузу между данными запросами - 
то тоже зависание программы (хотя уже проц не используется).
Как можно сделать так, чтобы производилась проверка доступности файла (или соединения инет по http), но без подвисания программы?
Или как вариант - производилась проверка, например каждые 2 минуты...?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 32
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Сергей
 Сергей









ICQ: 558230345 
Вопросов: 7
Ответов: 91
      
 Профиль |  | #1
       
Добавлено:  16.07.10 11:55
       
    
       
  
http://msdn.microsoft.com/ru-ru/library/system.net.webclient.aspx?ppud=4
 
    
в конце есть неплохой пример
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: 
 




Администратор
ICQ: 278109632 
Вопросов: 42
Ответов: 3949
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  16.07.10 12:08
       
    
       
  
Я что-то слышал о таймерах...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Сергей
 Сергей









ICQ: 558230345 
Вопросов: 7
Ответов: 91
      
 Профиль |  | #3
       
Добавлено:  16.07.10 15:10
       
    
       
  
Executioner 
    
по таймеру можно сделать обращение, но все равно не угадаешь окончание запроса. А ечли использовать Stream, то выполнение идет синхронно и обработка потока начнется только после аго полного получения. а по таймеру можно поставить обработку максимального времени запроса и его превышение с выдачей ошибки.
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: AgentFire
 AgentFire



ICQ: 192496851 
Вопросов: 75
Ответов: 3178
      
 Профиль |  | #4
       
Добавлено:  16.07.10 15:33
       
    
       
  
делай или My.Computer.Network.Ping и\или выводи во второй поток
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #5
       
Добавлено:  16.07.10 17:01
       
    
       
  
Сергей, спасибо за ответ, но для меня это было сложновато...
 
    
Сделал через таймер - проверку соединения (поставил проверку раз в секунду... проц вроде не грузит, память почти не кушает...
Если надо могу выложить пример..?
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #6
       
Добавлено:  16.07.10 17:02
       
    
       
  
Спасибо большое за подсказки  
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #7
       
Добавлено:  16.07.10 17:07
       
    
       
  
Чтоб делать проверку без подвисания, ее нужно запускать в отдельном потоке, или как асинхронную IO операцию, или в ThreadPool (через Delegate.BeginInvoke)
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: Coloss
 Coloss




ICQ: 479007356 
Вопросов: 15
Ответов: 37
      
 Профиль |  | #8
       
Добавлено:  16.07.10 23:18
       
    
       
  
конечно выкладывай!
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #9
       
Добавлено:  17.07.10 08:10
       
    
       
  
Сделано у меня так.
 
    
На форме добавлен элемент таймер с параметром Interval=1000
в этом случае идет следующее, каждую секунду идет проверка интернета (в том числе не возникает ошибок при блокировке фаероом, или отключенной сети и т.п.). Если проверка проходит успешно, то выполняется скачка файла и таймер останавливается, т.е. больше проверок не идет.
Вроде так. Подвинсаний проги не заметил, память кушается в моей програмке на 23 метра  но в нынешних условиях это вроде не много
 но в нынешних условиях это вроде не много  
Ваши замечания?  
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #10
       
Добавлено:  17.07.10 11:24
       
    
       
  
Таймер из Windows Froms срабатывает в UI потоке, поэтому пока идет загрузка, окно не будет реагировать на действия, будет зависшим.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #11
       
Добавлено:  17.07.10 12:04
       
    
       
  
так то да  
     но это уже можно и потом подредактировать. Но что кассается моего случая, файлик загружаемый - очень маленький, загрузится быстро...
 но это уже можно и потом подредактировать. Но что кассается моего случая, файлик загружаемый - очень маленький, загрузится быстро...  
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #12
       
Добавлено:  17.07.10 14:29
       
    
       
  
Если инет работает, а если нет то будет висеть пока не выкинет таймаут
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #13
       
Добавлено:  17.07.10 16:38
       
    
       
  
а вот тут ты не прав.. не висит  
     опробовано
 опробовано  
		
	  
			 
	
		 
    
       
    
Номер ответа: 14 
      
Автор ответа: EROS
 EROS




Вопросов: 58
Ответов: 4255
 Профиль |  | #14
       
Добавлено:  17.07.10 20:05
       
    
       
  
 
    
Оно не может не висеть.. это ты не прав, потому что как уже было сказано джедаем Artyom
И вот с этим не поспоришь.. А чтоб бы ты уверовал в его правоту просто отключи инет и запусти свой код.. и ты увидишь как твоя софтина висит.. ибо ты не ведаешь что творишь юный падован..
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа: Michael Melchakov
 Michael Melchakov



ICQ: 302272185 
Вопросов: 12
Ответов: 31
      
 Профиль |  | #15
       
Добавлено:  17.07.10 21:32
       
    
       
  
я тоже не спроста пишу... уже код написан, прога работает.
 
    
Отключил инет, запустил программу - сразу начинает работать проверка инета (не скачка файла а именно проверка).
Форму можно перетаскивать, работают кнопки... Или я не правильно понимаю ваши слова - "висеть" либо что то где то тут не так  
Давайте потом переделаю то что у меня прога скачивает... выложу прогу и код? 