我想改變一個線程的優先級,但我不能得到它的工作。我製作了一個按鈕,用於切換低位和高位之間的優先級,當我在工作列表中檢查時,優先級會發生變化。但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)
{
}
}
混淆線程或進程優先級通常是一個壞主意。 – 2012-01-05 12:47:45
@Nicholas Butler:哦,我明白了,微軟提出了線程管理API公開只是爲了好玩:) – 2012-01-05 12:51:06
我知道,但我真的想知道如何在運行時正確地更改它 – Sulby 2012-01-05 12:51:55