Хорошо, хотя ваш вопрос о времени в значительной степени решен (и я согласен с большинством из вышеперечисленных), я могу предложить некоторую информацию, касающуюся WCF.
Служба WCF просто размещается в домене приложения. Этот домен может быть формой Windows, консольным приложением, ASP.net и, в данном случае, службой Windows.
Таким образом, в некотором смысле вы не выставляете службу Windows через WCF , вы более размещаете службу WCF в приложении Windows Service домен. Я бы посоветовал протестировать ваш сервис (включая объекты таймера) в форме Windows , прежде чем переходить на службу Windows. Проще отлаживать и тестировать.
Размещенный сервис WCF фактически работает в своем собственном потоке:
serviceType_MyEmailer = typeof(MyEmailerServiceType);
ServiceHost host_MyEmailer;
host_MyEmailer = new ServiceHost(serviceType_MyEmailer);
Найдите в Интернете пример "DerivativesCalculatorService". Показывает, как разместить службу WCF в коде.
Хитрость времени здесь находится внутри вашего сервиса. Вы можете создать свой класс обслуживания как одноэлементный класс, который будет инициализирован немедленно, и после его инициализации он может запустить свой объект Timer (как видно из других ответов).
Таким образом, ваша служба WCF будет иметь постоянный экземпляр вашего класса, а его объект Timer будет молчать. Разместите все это в службе Windows, и все готово.
Надеюсь, это поможет.