Tengo una aplicación C# que realiza algunas tareas de mantenimiento. Tiene que funcionar aproximadamente cada hora, aunque no es muy importante si está un poco apagado. Y tiene que ejecutarse en un Servidor Win2003 sin que nadie haya iniciado sesión.Servicio de Windows o Programador de tareas para tareas de mantenimiento?
Básicamente me pregunto si debería escribir un Servicio de Windows, y si es así, si Thread.Sleep() es una forma adecuada de pausar el Thread para un hora, o si hay mejores formas de asegurarse de que el hilo permanece inactivo y no carga ningún servidor? (alias, lo que es más opuesto a un Spinlock)
La alternativa es el Programador de tareas de Windows, pero no estoy seguro si eso es bueno para el uso del servidor ya que a) tendría que almacenar el calendario en él que en mi app.config, b) No puedo controlar el servicio fácilmente a través de iniciar/detener/reiniciar y c) No sé si las credenciales del usuario de Windows son tan seguras como cuando las ingresé en el servicio MMC Snapin.
¿Cuáles son sus opiniones? ¿Es posible y bueno tener un Servicio inactivo o recomendaría el programador de tareas en su lugar?