Программирование для Windows NT

Приостановка и возобновление выполнения задачи


В некоторых случаях имеет смысл приостановить выполнение задачи. Например, если пользователь работает с многооконным приложением, и для каждого окна запускается отдельная задача, для повышения производительности можно приостановить выполнение задач в неактивных окнах.

Приостановка выполнения задачи выполняется с помощью функции SuspendThread:

DWORD SuspendThread(HANDLE hThread);

Через единственный параметр этой функции нужно передать идентификатор приостанавливаемой задачи.

Для каждой задачи операционная система хранит счетчик приостановок, который увеличивается при каждом вызове фукнции SuspendThread. Если значение этого счетчика больше нуля, задача приостанавливается.

Для уменьшения значения счетчика приостановок и, соответственно, для возобновления выполнения задачи вы должны использовать фукнцию ResumeThread:

DWORD ResumeThread(HANDLE hThread);

В случае ошибки функции SuspendThread и ResumeThread возвращают значение 0xFFFFFFFF.



Содержание раздела