スレッドの優先度を変更しようとしていますが、動作させることができません。私は低と高の優先順位を切り替えるボタンを作っており、これをジョブリストでチェックするときに優先順位が変更されます。ただし、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)
{
}
}
スレッドやプロセスの優先順位を混乱させるのは、一般的には悪い考えです。 –
@Nicholas Butler:マイクロソフトでスレッド管理APIを公開しました。 –
実行時に正しく変更する方法を知りたいのですが、 – Sulby