Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Service: проблема с OnExecute   Найти похожие ветки 

 
Геннадий   (2004-09-10 09:55) [0]

Создаю пустое ServiceApplication. Interactive устанавливаю в True. В обработчике OnExecute пишу что-нибудь простое (создать файл, например). Инсталлирую службу. Она не запускается. Но если убрать обработку OnExecute - служба и запустится, и остановится. Отдельная проблема с интерактивностью - если в обработчике (например) OnPause я могу создать файл и записать в него строку, то показать ShowMessage - нет (служба повиснет). Что я делаю не так?


 
Digitman ©   (2004-09-10 10:21) [1]


> В обработчике OnExecute пишу что-нибудь простое .. Она не запускается


она запускается !.. но тут же завершает работу, потому что завершилась процедура обработки события OnExecute()


> если убрать обработку OnExecute - служба и запустится, и
> остановится


все правильно, так и должно быть


> Отдельная проблема с интерактивностью - если в обработчике
> (например) OnPause я могу создать файл и записать в него
> строку, то показать ShowMessage - нет (служба повиснет).
> Что я делаю не так?


к "интерактивности" это не имеет отношения
а проблема "зависания" связана с тем, что код сервиса исполняется в доп.трэде, в котором непосредственный вызов ShowMessage() недопустим - ShowMessage создает VCL-объект (форму), а объекты VCL , как известно, непотокобезопасны.

следует либо синхронизировать обращения к VCL-форме с осн.трэдом процесса сервиса (любым удобным способом) либо отказаться от ShowMessage() и для целей отладки вызывать MessageBox()


 
Erik1   (2004-09-10 10:25) [2]

Посмотри сначала примеры для работы с TThread там тоже есть Execute! Еще можно использовать события OnStart OnStop и в них соответственно запускать свой тред на выполнение и останавливать его. Тогда будет иметь смысл использование OnPause OnContinue как Syspend и Resume.


 
Digitman ©   (2004-09-10 10:31) [3]


> Геннадий


события OnCreate, OnDestroy возбуждаюся в осн.трэде, все прочие события - в дополнительном



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.06 c
8-1088633422
xam
2004-07-01 02:10
2004.09.26
Документация Lame по русски


3-1094007540
HMT
2004-09-01 06:59
2004.09.26
Обновление содержимого blob.


1-1094736375
SMT
2004-09-09 17:26
2004.09.26
Передача массива чисел из прораммы с строку листа Excel


4-1092297748
sdw_syscoder
2004-08-12 12:02
2004.09.26
USB!


4-1092644424
Dmitry_K
2004-08-16 12:20
2004.09.26
GetSaveFileName