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

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

Про сервисы. Подскажите с событиями. [D7, XP, 2003]


AV ©   (2012-02-16 14:57:00) 

переделываю программу в сервис.
на
procedure TATS_S12.ServiceExecute(Sender: TService);
повесил было такую логику
 InitAndRunAllThreads;

 repeat
   ReportStatus;
   Sleep(1000);
 until GoExit; // GoExit проверка наличия файл
 
 repeat
   ReportStatus;
   Sleep(1000);
 until All_Threads_Report_DONE;
 Kill_All_Threads;

работает...
---------
что не устраивает - из оснастки не можно сделать стоп. А надо.
правильно ли понимаю, что надо написать:

procedure TATS_S12.ServiceStart(Sender: TService; var Started: Boolean);
InitAndRunAllThreads;

procedure TATS_S12.ServiceExecute(Sender: TService);
 repeat
   ReportStatus;
   Sleep(1000);
 until GoExit;  // ловить stop от оснастки

procedure TATS_S12.ServiceStop(Sender: TService; var Stopped: Boolean);
 repeat
   ReportStatus;
   Sleep(1000);
 until All_Threads_Report_DONE;
 Kill_All_Threads;


AV   (2012-02-16 16:19:00) [1]

СПАСИБО!


Сергей М.   (2012-02-16 15:22:00) [2]

procedure TATS_S12.ServiceExecute(Sender: TService);
begin
 while not Terminated
//and ДругиеУсловияВыходаИзЦикла
do
 ProcessRequest(true);
end;


Наверх

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