Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог функции sleep() без прерывания работы приложения [D7, WinXP]


Страницы:   1 2

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
Только это все неправильно.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо