"..сучасні процесори дешеві і швидко погіршаться при 100% процесора".
Ви не повинні турбуватися про "деградацію процесора" взагалі. Сучасні процесори не менш якісні, ніж у колишні часи.
Це дуже дорого (і стає коштовнішим кожні пару років) робити процесори, кілька мільярдів на створення нового файлу - не рідкість (див. Посилання).
http://en.wikipedia.org/wiki/Semiconductor_fabrication_plant
Виробничі витрати центрального процесора залежать максимум від не. вироблених одиниць. Це добре відомий факт в економіці. Ось чому їх можна продати (відносно) "дешево". (Я думаю, тут не потрібно посилання)
Я можу перерахувати низку причин, чому я вважаю, що сучасні процесори мають більш високу якість, ніж у "колишні часи".
Але лише найважливіше: Переваги в тестуванні. Сучасна електроніка «призначена для тестування». Будь програмне чи апаратне забезпечення, широке розуміння оцінок тестів майже на все інше не так уже й старе. Для процесорів навіть проводяться тести на формування різних типів ціни та частоти, наприклад, найкращі процесори продаються з найвищими частотами. Незважаючи на це, дешевші процесори дуже часто можуть працювати з більш високою частотою, ніж продані - вони калічаться лише з тієї причини, що виробник хоче продати деякі "високорівневі" процесори з більш високими цінами.
(З іншого боку, звичайно, можливе більше помилок для процесора з більш ніж 1,5 мільйонами транзисторів, як і зараз, ніж для деяких тисяч транзисторів процесора сімдесятих. Але це не суперечить моїй відповіді IMO. Процесори взагалі як правило, є багато відомих помилок, принаймні, у мікрокоді, але це не стосується тут.)
Є ще більше причин не турбуватися про знецінення процесора для вашої програми:
Перша причина полягає в тому, що сучасні процесори зменшують свою частоту чи дросель, якщо вони занадто гарячі.
Повинно бути зрозуміло, що якщо ви використовуєте процесор 100% 24/7 цілий рік, він зазвичай загине раніше, ніж процесор, що використовується лише кожен другий тиждень на одну годину. Але це стосується і машин, до речі. Тільки в таких випадках я б задумався про використання процесора та потенційний сон.
Друга причина - те, що дійсно дуже важко написати програму, яка використовує 100% ЦП від ОС (наприклад, в Windows). Крім того, сучасні процесори (як правило) мають щонайменше 2-4 ядра. Отже, традиційний алгоритм, який прагне використовувати 100% одноядерного процесора, зараз має лише 50% на двоядерному процесорі (спрощений, але видно в реальних сценаріях).
Більше того, операційна система має контроль над процесором, а не над вашою програмою, тому, якщо є інші додатки з тим самим або більшим пріоритетом (що за замовчуванням), ваша програма отримує лише якомога більше процесора, але інші програми не будуть голодувати. (Звичайно, це лише спрощена теорія, і, звичайно, багатозадачність Windows, Linux та інших не є ідеальною, але в цілому я вважаю це справжнім).
"Раніше я мав враження, що 100-відсоткове використання процесора було б кращим для інтенсивної чи тривалої роботи."
Так, залишайтеся з цим. Але, наприклад, якщо ви чекаєте і циклуєте інший процес, інакше кажучи, нічого не роблячи, було б не так вже й погано, якби ви Thread.Sleep () кілька мілісекунд в цьому циклі, надаючи додатковий час іншим. Оскільки для хорошої багатозадачної ОС це не потрібно, я вирішив деякі проблеми з цим, наприклад, для Windows 2000. (Це НЕ означає, звичайно, використовувати Sleep () для розрахунків, наприклад.