TPL – Comment puis-je forcer TPL à utiliser un nombre de threads fixe? pas moins

Comment puis-je forcer TPL à utiliser un nombre fixe de threads? Je sais que MaxDegreeOfParallelism peut être utilisé pour définir la limite supérieure, mais je souhaite que la limite supérieure soit égale à la limite inférieure. Est-ce possible? Comment?

Parce que je sais que quelqu’un va demander =) oui, je suis sûr que je veux faire cela et oui c’est optimal pour mon scénario. =)

MODIFIER
La solution nécessite un partitionneur personnalisé, ainsi que le gestionnaire de tâches personnalisé http://social.msdn.microsoft.com/Forums/en-US/parallelextensions/thread/002ff888-6e13-4d7e-a234-1632e8a1f551

Vous pouvez créer votre propre TaskScheduler si vous en avez vraiment besoin, mais utiliser TaskCreationOptions.LongRunning est probablement la meilleure approche.

Comment: créer un planificateur de tâches limitant le degré de simultanéité

Avez-vous essayé d’utiliser TaskCreationOptions.LongRunning lors de la création des tâches? Ce n’est qu’un indice, mais je crois que cela peut aider:

Spécifie qu’une tâche sera une opération longue et à grain grossier. Il fournit un indice au TaskScheduler que la sursouscription peut être justifiée.

Il est possible que cela surabonde au-delà de MaxDegreeOfParallelism bien sûr … vous devriez probablement essayer de trouver une ressource qui l’explique en détail Au fait, comment créez-vous vos tâches?