Для недогоняющих: работу других программ (а тем более системных, типа обмен с диском) Windows обеспечит в любом случае, даже если вы напишете while(1); а WinNT, даже если напишете asm { cli }; while(1); !!!!!!! а если в цикле вызываются API-шные функции (а как иначе эти самые "флаги"-эвенты "опрашивать"???) и тем более при вызове функций Wait*** все будет работать Ok, т.к. для этого и задумывались функции Wait***, т.к. система во время этих вызовов преключается на другие потоки до возникновения события (что на самом деле можете рассматривать как прерывания, только в программной реализации)!!!!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)