![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Выполняй в отдельном потоке.
|