Mejor implementación de servicio de fondo ASP.NET

¿Cuál es la mejor implementación para más de un servicio en segundo plano en una aplicación ASP.NET?

Timer Callback

Timer timer = new Timer(new TimerCallback(MyWorkCallback), HttpContext, 5000, 5000);

Hilo o ThreadPool

Thread thread = new Thread(Work);
thread.IsBackground = true;
thread.Start();

Trabajador de fondo

BackgroundWorker worker = new BackgroundWorker(); 
worker.DoWork += new DoWorkEventHandler(DoMyWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DoMyWork_Completed); 
worker.RunWorkerAsync();

Cachear comohttp://www.codeproject.com/KB/aspnet/ASPNETService.aspx (ubicado en Jeff Atwood'spublicar aquí)

Necesito ejecutar múltiples "servicios" de fondo en un momento dado. Un servicio puede ejecutarse cada 5 minutos donde otro puede ser una vez al día. Nunca se ejecutarán más de 10 servicios a la vez.

Respuestas a la pregunta(3)

Su respuesta a la pregunta