Кто-нибудь может дать мне несколько советов по использованию процессора
Вы должны рассмотреть проверку циклов в приложении, например, цикл while
, если вы тратите так много времени на ожидание некоторыхусловие станет истинным, тогда это займет много процессорного времени.например,
while (true)
{}
или
while (_Flag)
{
//do something
}
Если код, выполняемый внутри while, является синхронным, то поток завершит потребление большей части циклов ЦП.Чтобы решить эту проблему, вы можете выполнить код в то время как в другом потоке, так что он будет асинхронным, а затем использовать ManualResetEvent
или AutoResetEvent
, чтобы сообщить о выполнении операции, еще одна вещь, которую следует упомянуть, это рассмотреть использование System.Threading.Thread.Sleep
метод, позволяющий перевести поток в спящий режим и дать процессору время для выполнения других потоков, например:
while(_Flag)
{
//do something
Thread.Sleep(100);//Blocks the current thread for 100 milliseconds
}