![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
подождать завершения работы процедуры
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]
> Как правильно подождать
Туча разных способов существует, из которых самый неправильный- это пустой цикл с проверкой флага в в условии выхода.