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?