Я слежу за книгой CLR via C # Джеффри Рихтера.Что касается приоритетов запросов ввода / вывода, в нем говорится:
Поскольку запросы ввода / вывода обычно требуют времени для обработки, возможно, что поток с низким приоритетом может значительно повлиять на отзывчивость системы, приостановиввысокоприоритетные потоки, что не позволяет им выполнять свою работу
Однако в документации Microsoft о Планирование потоков говорится, что:
Если вышепоток с приоритетом становится работоспособным, поток с более низким приоритетом вытесняется, а поток с более высоким приоритетом может выполняться снова
Даже в собственной книге Джеффа говорится о планировании потока:
* 1017Потоки с более высоким приоритетом всегда имеют приоритет перед потоками с более низким приоритетом, независимо от того, что выполняются потоки с более низким приоритетом.Например, если поток с приоритетом 5 работает, и система определяет, что поток с более высоким приоритетом готов к работе, система немедленно приостанавливает поток с более низким приоритетом (даже если он находится в середине своего временного интервала) и назначаетПроцессор для потока с более высоким приоритетом, который получает полный временной интервал.
Исходя из вышеизложенного, я понимаю, что всякий раз, когда выполняется поток ввода-вывода с низким приоритетом и поток с более высоким приоритетомнаходится в состоянии выполнения, поток с более высоким приоритетом выполняется временно приостановив поток ввода-вывода.Как для потоков с низким приоритетом возможно приостановить потоки с высоким приоритетом ?