Я создаю новую тему. Вот код метода потока:Как уменьшить использование процессора во время бесконечного цикла в потоке?
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%.
Что мне нужно сделать, чтобы уменьшить нагрузку на мой процессор между итерациями цикла?
Не следует брать 50%, если есть Thread.Sleep? Вы уверены, что это * этот * поток, который занимает все процессорное время? – Kos 2010-12-04 15:44:43
У вас есть только 1 нить? – Codecat 2010-12-04 15:45:44