Я знаю о Semaphore
класс в System.Threading
пространство имен, но я не вижу, позволяет ли оно ожидать потоки, чтобы иметь различные приоритетные уровни.
Если два потока ожидают открытого слота, есть ли способ позволить поток с более высоким приоритетом иметь первый открытый слот в наличии?
Из документация MSDN о классе Semaphore
Нет гарантированного порядка, например FIFO или LIFO, в которых заблокированы потоки введите семафор.
Но взгляните на эти два проекта, оба из которых поддерживают приоритет потоков.