Страницы

Поиск по вопросам

понедельник, 17 декабря 2018 г.

Программа потребляет много cpu

Небольшое отступление
У нас в фирме используется одна очень древняя программа с одним недостатком. После работы с ней надо чистить за ней файлы и в одном файле менять значения на первоначальные. Иначе при следующем запуске программа работает некорректно.
Итак решение - пишем программу в виде виндоуз формы, а потом форму удаляем, и кидаем ее в автозагрузку. В программе запущен таймер который проверяет если та древняя программа была закрыта пользователем он файлы приводит в первоначальный вид.
Но так форму я удалил (пользователям о ней знать не обязательно), что бы моя программа не завершала работу в ней стоит бесконечный цикл. Вот код:
private static void Main() { TimerCallback timer= new TimerCallback(Run);
System.Threading.Timer time = new System.Threading.Timer(timer, null, 0, 2000); for(;;) } static void Run(object state) {....}
но как оказалось он потребляет 20-30 процентов ресурсов проца именно из за бесконечного цикла. Есть у кого нибудь идеи как уменьшить нагрузку на проц?
Да и не хотелось бы использовать форму пусть и полностью прозрачную.


Ответ

Это у вас 3-4 ядра, вот оно и потребляет всего 20-30 процентов. Будет одно ядро - будет жрать 100, я думаю. Поставьте в этот цикл хотя бы Sleep(100) и будет счастье. А вообще надо нормально переписывать, а не костыли использовать...

Комментариев нет:

Отправить комментарий