|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Выполняй в отдельном потоке.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |