Это - хорошая практика, чтобы закончить запускать Ваш сервис максимально быстро. Так, во время эти запускаются состояние, сделайте только, что абсолютно необходимо подтвердить, что оно запустилось успешно; и сделайте остальных позже. Если эти запускаются , все еще долгий процесс, используйте SetServiceStatus периодически, чтобы сообщить Диспетчер управления службами , что Вы еще не закончили, таким образом, это не делает тайм-аута Ваш сервис.
Я согласен с Ромуло на завершении, чтобы начать обслуживание как можно скорее. Однако, если вам нужно время и вы используете .NET Framework 2.0 или более позднюю версию, вы можете рассмотреть метод ServiceBase.RequestAdditionalTime ().
protected override void OnStart()
{
this.RequestAdditionalTime(10000);
// do your stuff
}