|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | ||||
| 
 | ||||
|  Как избавится от зависания? Ребята всем привет  дело такое программа при запуске должен проверить имеет ли прога доступ к определенному серверу или нет дело в том что когда доступ имеется то все ок а когда доступа нету программа зависает на несколько секунд а потом выдает сообщение что сервер не доступен как избавить его от зависания? Код: const
  INTERNET_CONNECTION_MODEM = 1;
  INTERNET_CONNECTION_LAN = 2;
  INTERNET_CONNECTION_PROXY = 4;
  INTERNET_CONNECTION_MODEM_BUSY = 8;
var
  dwConnectionTypes: DWORD;
  iTime: integer;
begin
 dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
    INTERNET_CONNECTION_PROXY;
  if IsConnectedToInternet(@dwConnectionTypes) then
  begin
    iTime := PingHost('127.0.0.1');
    if (iTime = strtoint('-1')) or (iTime > 200) then
    begin
      form1.label1.Caption:='NOT Connected!';
    end
    else
    begin
      form1.Label1.Caption := 'Connected:';
    end;
  end;Если этот отрывок запустить в onCreate видно что программа зависает потому что рядом с значком курсора появляется песочные часы пробовал даже запустить это в отдельном потоке с приоритетом tpHighest все равно зависает. как то можно избавиться от зависания? | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Уже который раз как только пишу о помощи находится ответ выяснил висит оно здесь iTime := PingHost('127.0.0.1'); и если после него добавить Application.ProcessMessages; то все ок! | 
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   Выполняй в отдельном потоке. |