comment les tâches ajouter des fonctionnalités de priorité
-
28-09-2019 - |
Question
i utilise Bibliothèque de tâches pour mon image service de compression. Je voudrais compresser beaucoup de fichiers concurrency. Mais je veux le service fonctionne uniquement lorsque l'utilisateur est inactif (ou pas plus impotarnt tâche dans Programm).
Je sais que Threadpool ne supporte pas le « changement de priorité fil » fonction, si la tâche ne supporte cette fonction.
Puis-je développer cette fonctionnalité au niveau supérieur de contrôle? (Priorité TaskScheduler par exemple)
La solution
Comme @zengr mentionné, vous pouvez utiliser un modèle de file d'attente prioritaire pour résoudre ce problème. Il y a en fait un bon exemple dans MSDN de la mise en œuvre des files d'attente prioritaires en utilisant instances ConcurrentQueue<T>
par priorité, puis avec un emballage qui commande
Autres conseils
Vous pouvez créer un TaskScheduler
personnalisé pour la bibliothèque parallèle de tâches puis de planifier des tâches sur ce en passant une instance de celui-ci au constructeur de TaskFactory
.
Voici un exemple de la façon de le faire: Planificateur de tâches avec une priorité