Я пытаюсь изменить приоритет потока, но я не могу заставить его работать. Я сделал кнопку, которая переключает приоритет между низким и высоким, и когда я проверяю это в списке заданий, приоритет изменяется. Но использование ЦП не изменилось. Интересно, это просто потому, что я не использую полную мощность процессора и как это может быть.Изменить приоритет нити
Я не прошу, если это хорошая идея. Я спрашиваю, как это сделать.
Вот как я изменяю приоритет. Это код позади класса:
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)
{
}
}
Как правило, это плохая идея, связанная с приоритетами потоков или процессов. –
@ Николас Батлер: О, я вижу, Microsoft создала API управления потоками публично просто для удовольствия :) –
Я знаю, но я действительно хочу знать, как правильно его изменить во время выполнения – Sulby