我创建了一个新线程。这里是一个线程方法的代码:如何减少线程中无限循环期间的处理器使用率?
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