Это определенно ужасно идея.
Вообще говоря, установка приоритета потока или процесса - плохая идея, потому что он недетерминирован, и вы можете лишить других потоков / процессов в действии. Кроме того, вы можете фактически повысить приоритет потоков / процессов с более низким приоритетом из-за голодания.
Кроме того, потоки пула потоков предназначены для повторного использования, и, изменяя приоритет потока, вы меняете ожидание задачи, которая получит поток для использования после выполнения вашей подпрограммы.
Как говорится, у вас есть два варианта. Если вам нужно только расставить приоритеты для ваших задач и не возражать против того, чтобы другие элементы, не связанные с вашими задачами, выполнялись раньше ваших, то вы можете использовать пул потоков с шаблоном потребителя-производителя с некоторым кодом оболочки, который будет принимать элемент с наивысшим приоритетом из вашей очереди.
Если вы хотите, чтобы потоки выполняли только ваши задачи, вам нужно создать свой собственный пул потоков (используя класс System.Thread), а затем сделать то же самое, используя код-обертку, чтобы заставить задачу выполняться на основе приоритета. .
Новые классы в пространстве имен System.Threading в .NET 4.0 (еще не выпущены) будут обрабатывать создание отдельного пула потоков для вас.