Вопросы к Поиску с Алисой
Разница между threaded и обычными DPC заключается в том, как они взаимодействуют с потоками. learn.microsoft.com gearspace.com
Обычный DPC вытесняет выполнение всех потоков и не может быть вытеснен потоком или другим DPC. learn.microsoft.com gearspace.com Если в системе много обычных DPC, поставленных в очередь, или один из них работает длительное время, каждый поток будет приостановлен. learn.microsoft.com gearspace.com Это увеличивает системную задержку и может повлиять на производительность приложений, чувствительных к времени, например, для воспроизведения звука или видео. learn.microsoft.com gearspace.com
Threaded DPC, в свою очередь, может быть вытеснен обычным DPC, но не другими потоками. learn.microsoft.com gearspace.com Он работает за счёт выполнения рутины DPC на пассивном уровне в потоке с приоритетом реального времени (приоритет 31). forums.guru3d.com Это позволяет DPC вытеснять большинство потоков пользовательского режима, но при этом даёт возможность другим прерываниям, неthreaded DPC, APCs и потокам с более высоким приоритетом прерывать рутину. forums.guru3d.com
Таким образом, threaded DPC предпочтительнее обычных DPC, если конкретный DPC не должен быть вытеснен, даже другим DPC. learn.microsoft.com