Multithread service, BackgroundWorker vs pool de threads?

J'ai un .NET 3.5 Service Windows. Je suis en essais avec une petite application qui vient dort fils après leur départ, par hasard timespans de 300 à 6500ms. J'ai plusieurs questions au sujet de cette question.

  1. Est BackgroundWorker vraiment destiné pour utilisation seulement dans les applications WinForms ou est-ce simplement absurde, comment exactement est-il à l'écoute à cet effet?
  2. J'ai lu sur ThreadPools dans cette question et cette une. Je ne suis pas sûr de savoir exactement combien il est un problème pour moi que le fils durer entre une demi-seconde, et quelques secondes. Est-ce une raison suffisante pour regarder ailleurs?
  3. Suis-je mieux de juste de créer les threads d'arrière-plan moi-même?

De vie réelle, service de sondage la base de données pour une liste de demandes en attente, exécuter les threads pour chacune de ces demandes (limitée à un certain nombre de threads simultanés) et chaque fil sera de vérifier si certaines des données dans une base de données, récupérer s'il le fait, ou le télécharger à partir d'un API en continu, les stocker, et de renvoyer les données. Le téléchargement serait la partie qui consomme le plus de temps.

Je voudrais vraiment cette question pour .NET Framework 3.5, mais si il y a de mieux ou de moyens plus efficaces pour accomplir cette vertu .NET 4.0, je voudrais lire sur eux trop. Des liens avec plus d'informations sont également très appréciées.

InformationsquelleAutor bevacqua | 2011-07-08