Передав управление приложению, Windows не может забрать управление обратно и ждет, пока приложение не освободит процессор. Таким образом, в Windows возможен захват процессора неправильно работающим приложением и вызванное этим «зависание» системы.
Для того чтобы обеспечить более равномерное разделение вычислительных ресурсов процессора между приложениями, при отсутствии сообщений в очереди приложения функция GetMessage() автоматически передает управление Windows. Таким образом, если приложение в данный момент времени не задействовано, Windows может передать управление другому приложению. Поскольку все приложения имеют цикл обработки очередей сообщений, такая неявная передача управления в какой-то степени обеспечивает разделение вычислительных ресурсов процессора. В большинстве случаев механизм передачи управления функции GetMessage() вполне удовлетворительно разделяет время процессора. Однако, если ваше приложение, например, пишет на диск большие объемы данных или производит большую вычислительную работу, другие задачи не будут работать, пока ваше приложение не передаст управление Windows.
В WIN32 проблемы захвата процессора приложением не возникает, так как WIN32 работает с приложениями в режиме разделения времени. В этом режиме работы каждое приложение обрабатывается установленный квант времени после чего запоминаются состояния регистров и WIN32 переходит к обработке очередного приложения в течении того же кванта времени. Такой процесс продолжается все время циклически. Переходя к обработке очередного приложения WIN32 восстанавливает состояние регистров и продолжает работу с приложением с прерванной точки.