我創建了一個新線程。這裏是一個線程方法的代碼:如何減少線程中無限循環期間的處理器使用率?
while (true)
{
if (!showHelp)
{
Console.Clear();
Console.WriteLine("==============================================");
Console.WriteLine(player.PlayList.CurrentTrack().Artist + " "
+ player.PlayList.CurrentTrack().Title + " "
+ player.PlayList.CurrentTrack().Genre.ToString());
Console.WriteLine(" [ " + pos.Duration() + "/"
+ player.PlayList.CurrentTrack().Length + " ] ");
Console.WriteLine("===============================================");
}
Thread.Sleep(1000);
if (isPlaying)
pos += TimeSpan.FromSeconds(1);
if (pos > player.PlayList.CurrentTrack().Length)
{
pos = TimeSpan.Zero;
player.Next();
}
}
我想改變在控制檯當前軌道位置。每次迭代,我都會休息1秒,然後加1秒到位置。
我在無限循環中執行它,並且我的處理器似乎處於50%的負載下。
我應該怎麼做才能減少循環迭代之間處理器上的負載?
如果存在Thread.Sleep,則不應占用50%?你確定它是*這個線程佔用所有的CPU時間嗎? – Kos 2010-12-04 15:44:43
你確定你只有1個線程? – Codecat 2010-12-04 15:45:44