![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог функции sleep() без прерывания работы приложения [D7, WinXP]
DeadAlice © (2010-11-25 11:08:00)Имеется следующий код в библиотеке ActiveX Library:
компонент.Connect
sleep(1000)
По итогу компонент, выполняющий метод Connect оказывается не коннект, так как выполняется синхронно и на момент проверки соединяться еще не успевает, а sleep() тормозит выполнение всей программы. Если его заменить, к примеру, на ShowMessage, то соединение успевает произойти.
Чем можно заменить sleep(), чтобы дать время компоненту соединиться?
Anatoly Podgoretsky (2010-11-25 12:13:00) [21]> DeadAlice (25.11.2010 12:00:04) [4]
Это без sleep() будет бесполезная нагрузка.
Ну а условия выхода можешь делать как угодно, но ведь в этом случае придешь
к началу.
Leonid Troyanovsky (2010-11-25 12:05:00) [22]
> clickmaker © (25.11.10 11:54) [3]
> Sleep(100);
May be Application.ProcessMessages.
--
Regards, LVT.
DiamondShark (2010-11-25 12:05:00) [23]
> компонент.
Прямо так и называется?
clickmaker (2010-11-25 12:05:00) [24]я не понимаю: коннект - в отдельном потоке? тогда [3] может помочь
если не в отдельном, то почему [0] не работает?
DeadAlice (2010-11-25 12:00:00) [25]а если не будет коннектед? если я добавлю в ваш вариант еще и счетчик, то sleep() будет создавать только бесполезную паузу.
clickmaker (2010-11-25 11:54:00) [26]> как код должен линейно выполняться в пределах одной процедуры
while not что-то.Connected do begin
Sleep(100);
end;
DeadAlice (2010-11-25 11:47:00) [27]конечно неправильно, но я не могу использовать событие OnConnected компонента, так как код должен линейно выполняться в пределах одной процедуры.
не работает, даже sleep(10000), что заметно дольше чем нажать кнопку в ShowMessage.
Anatoly Podgoretsky (2010-11-25 11:40:00) [28]sleep, а время замерь с ShowMessage
Только это все неправильно.