J'essaie de changer la priorité d'un thread mais je n'arrive pas à le faire fonctionner. J'ai fait un bouton qui bascule la priorité entre le bas et le haut et quand je vérifie ceci dans la joblist la priorité est changée. Mais l'utilisation du processeur n'est pas modifiée. Je me demande si c'est juste parce que je n'utilise pas toute la puissance du processeur ou comment cela peut être.Modifier la priorité des threads
Je ne demande pas si c'est une bonne idée. Je demande comment le faire.
Voici comment je change la priorité. Voici le code derrière classe:
private Thread tr;
public MainWindow()
{
InitializeComponent();
tr = new Thread(new ThreadStart(infiniteLoop));
tr.Start();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (Process.GetCurrentProcess().PriorityClass == ProcessPriorityClass.High)
{
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Idle;
tr.Priority = ThreadPriority.Lowest;
description.Text = "Idle";
}
else
{
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
tr.Priority = ThreadPriority.Highest;
description.Text = "High";
}
}
private void infiniteLoop()
{
while (true)
{
}
}
Il est généralement une mauvaise idée de jouer avec les priorités de thread ou de processus. –
@Nicholas Butler: Oh, je vois, Microsoft a rendu public l'API de gestion de threads juste pour le plaisir :) –
Je sais mais je veux vraiment savoir comment le changer correctement à l'exécution – Sulby