2014-02-03 2 views
-4

Мне интересно, почему .NET предлагает только 5 приоритетов потоков (т. Е. Самый высокий, вышеNormal и т. Д.) На выбор, если ОС Windows использует 32 приоритета?Почему C# .Net разрешает только 5 приоритетов потоков?

+2

Пять уровней приоритета должны быть достаточными для любого человека. –

+2

Это один из вопросов «вы должны были бы задать Microsoft». – Amy

+0

Я не согласен со всеми downvotes и помещает его в режим ожидания. На это есть четкий ответ. –

ответ

1

Windows использует приоритет процесса вместе с приоритетом потока для вычисления общего приоритета. Как только вы это знаете, вы можете использовать Google для приоритетов процессов и, возможно, найдете Scheduling Priorities on MSDN.

Я был бы очень признателен, если бы вы могли прочитать книгу Windows Internals 6-е издание, часть 1, в котором подробно описывается на странице 410 ++.

В C# вы можете попробовать

using System.Diagnostics; 
using System.Threading; 
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal; 
Thread.CurrentThread.Priority = ThreadPriority.Highest; 

и посмотреть на результаты с ProcessExplorer.

+0

Спасибо за четкий ответ. Таким образом, сочетание приоритета процесса и приоритета потока позволит мне использовать более 5 приоритетов, упомянутых выше в ОС Windows. Я бы проверял этот ответ как полезный, если бы смог, но, к сожалению, я не могу из-за всех нисходящих я получил! – user3186786

Смежные вопросы