Показать сообщение отдельно
  #1  
Старый 21.01.2017, 20:08
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание Как избавится от зависания?

Ребята всем привет
дело такое программа при запуске должен проверить имеет ли прога доступ к определенному серверу или нет
дело в том что когда доступ имеется то все ок
а когда доступа нету программа зависает на несколько секунд а потом выдает сообщение что сервер не доступен

как избавить его от зависания?

Код:
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 все равно зависает.

как то можно избавиться от зависания?
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием