![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||||||||||
|
||||||||||||
![]() IdHttp в отдельном потоке
Пытаюсь сделать загрузку URL по клику в отдельном потоке. Делаю в отдельном потоке, так как прогрузка URL осуществляется постоянно с временно́й задержкой. Вот код кнопки: Код:
G_SYS_ISLAUNCHED - это глобальная переменная, которую считывает таймер 1 раз в 100 секунд. Если переменная true - блокируются все поля ввода и кнопки на форме, если false - разблокируются Вот сама функция onTimer: Код:
Вот type: Код:
Вот глобальные var: Код:
И сами процедуры Execute и DoWork: Код:
Я рассчитывал, что при нажатии btn_launch кнопка, исходя из функции таймера, поменяет свой Caption и потихоньку начнётся циклическое пингование URL, но происходит так, что срабатывает только изменение статус бара: Код:
Где я сделал не так? Проблема в таймере? Или поток не срабатывает? |
#2
|
|||
|
|||
![]() Естественно, не срабатывает. Ты же блокируешь основной поток приложения:
Код:
Synchronize используется только для обновлнения данных в главном потоке. Нельзя все работу потока засунуть туда. Просто получается, что у тебя поток тупо блокирует главный поток приложения. Править не буду, бо как надо перелопатить всю процедуру потока... |