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

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

подождать завершения работы процедуры


Scott Storch ©   (2011-11-16 15:33:00) 

Есть объект TServiceExecutor который запускает сервисы в приложении (импорт, экспорт, ...). У него есть 2 события: OnServiceStarted и OnServiceStopped. У себя в приложении пишу функцию запускающую сервис импорта. После того сервис импорта завершит свою работу, нужно выполнить определенные действия. Как правильно подождать, пока сервис импорта завешит работу. Правильно ли я сделал:

procedure {...}.event_ServiceStarted({...});
begin
 {...}
 FServiceIsRunning := True;
 {...}
end;

procedure {...}.event_ServiceStopped({...});
begin
 try
   {...}
 finally
   FServiceIsRunning := False;
 end;
end;

procedure {...}.Import({...});
begin
 {...}
 ServiceExecutor.ExecuteService({...}); // вызывается событие OnServiceStarted сервиса
 repeat
   // ждем, пока сервис не завершит свою работу
 until
   FServiceIsRunning;
 // выполняем некоторые действия
 {...}
end;


Dennis I. Komarov   (2011-11-16 17:44:00) [1]

WaitFor...


Сергей М.   (2011-11-16 16:16:00) [2]


> Как правильно подождать


Туча разных способов существует, из которых самый неправильный- это пустой цикл с проверкой флага в в условии выхода.


Наверх

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