Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Создание потока в службе


Автор: DriveIS 20.1.2008, 18:17
Создал службу, установил ее, все нормально работает.
Но вот понадобилось мне создать дополнительный поток - попытался создать его с помощью CreateThread. Но теперь служба запускается и тут же завершается  и scm мне пишет: <Служба Х на Локальный компьютер была запущена и затем остановлена...> В чем дело может быть?

Автор: NiJazz 20.1.2008, 22:46
Перед вызовом CreateThread сделай Sleep, чтобы приконнектиться отладчиком, а там смотри, что происходит. 

Автор: DriveIS 21.1.2008, 07:22
CreateThread заменил на _beginthread и все нормально заработало? 
И в чем же здесь гвоздь?

Автор: dumb 21.1.2008, 08:00
Цитата(DriveIS @  21.1.2008,  07:22 Найти цитируемый пост)
CreateThread заменил на _beginthread и все нормально заработало
если такая замена помогла, то, вероятно, сервис завершался из-за "падения" вследствие конфликта при работе менеджера памяти, т.к. он не был настроен на многопоточную работу.

Автор: NiJazz 21.1.2008, 09:26
DriveIS, в функции потока использовал CRT?

Автор: DriveIS 21.1.2008, 11:17
dumb, а что понимать под правильной настройкой менеджера памяти???

NiJazz, в функции потока - работа с сокетами: accept в т.ч.


Автор: DriveIS 22.1.2008, 10:01
Млин... нашел ошибку, глупейшую, не касается не в коей мере потоков.
Счас все работает и с CreateThread.
Всем спасибо.

Автор: NiJazz 22.1.2008, 17:26
Так расскажи, в чём ошибка была.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)