スレッドの優先度を変更しようとしていますが、機能させることができません。優先度を低と高の間で切り替えるボタンを作成しました。ジョブリストでこれをチェックすると、優先度が変更されます。ただし、CPU 使用率は変更されません。これは、CPU パワーをフルに使用していないからなのか、それともどうしてこうなったのだろうかと思います。
私はそれが良い考えかどうか尋ねているわけではありません。やり方を聞いています。
優先順位を変更する方法は次のとおりです。これはクラスの背後にあるコードです:
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)
{
}
}