2013-06-21 4 views
0

Я создал службу Windows C#, и она делает то, что она должна делать. По завершении службы прекращается.C# Служба Windows запускается, но завершает работу после завершения процесса

Мне нужно, чтобы служба выполнялась без остановки. Таким образом, когда будет доступен другой канал данных, служба будет работать через исходный код и делать то, что ему нужно.

Любые предложения, пожалуйста. Заранее спасибо.

-Джефф

+2

Без кода мы не можем сделать много ... – SynerCoder

+0

Вы, вероятно, разместили свой код внутри 'onstart'. Это событие работает как триггер: это происходит, и ваш код должен продолжать работать после него, иначе ваш сервис остановится. Вы не можете поместить в него цикл forever, потому что он должен закончиться, чтобы сообщить Windows, что ваша служба работает правильно. Таким образом, внутри 'OnStart' вы, скорее всего, начнете поток, который будет работать вечно (или основываться, на условиях, останавливаться). –

+0

Вы просите нас рассказать о том, что вы, возможно, сделали неправильно. Это не так, как работает StackOverflow. Вам нужно описать проблему, разместить соответствующую часть вашего кода и задать конкретный вопрос об этом коде. –

ответ

3

Основная функция в службы Windows необходимо запустить внутри цикла, так что он будет продолжать работать, пока прием команды Стоп. Тип цикла не имеет значения, но служба должна постоянно работать, чтобы продолжать работать. Кроме того, цикл не может быть запущен в методе OnStart. Создайте поток для запуска цикла loop и запустите поток из метода OnStart.

+0

Практически там: этот цикл не может находиться внутри 'OnStart', или Windows вернется« эта служба заняла слишком много времени, чтобы начать ». –

+0

Это верно, спасибо @AndreCalil – Dustin

+0

Добро пожаловать. Улучшите свой ответ, и я его повышу =) –