Передние потоки против фоновых потоков

MSDN утверждает, что:

Фоновые потоки идентичны потокам переднего плана с одним исключением: фоновый поток не поддерживает запущенную управляемую среду выполнения

  • Есть ли какое-либо различие в Thread Quantum, которое задано ОС для потока, если это был фоновый поток, а не потоки переднего плана? Проверьте это.

  • При установке приоритета фонового потока на более высокое значение, например Highest, будет ли он более квантовым, чем передний план с более низким приоритетом?

Спасибо заранее.

Ответ 1

Управляемые потоки foreground/background, квант потока нитей Windows и приоритет потока являются ортогональными понятиями.

  • Быть потоком переднего плана означает, что процесс не может быть остановлен до тех пор, пока он (и все остальные потоки переднего плана) не будут остановлены.
  • Квант - это время, в течение которого поток запускается до того, как система рассмотрит планирование другого потока на этом процессоре.
  • Приоритет потока определяет порядок иерархии в пределах всех готовых к запуску, ожидающих потоков.

Из этих трех элементов только управляемый код относится только к переднему/второму.

Теперь на ваши вопросы.

  • Процесс переднего плана - это концепция Windows. Он не связан с потоками переднего плана/фона в .net.
  • Приоритет нитей не влияет на квант.