Функция SuspendThread


Функция SuspendThread приостанавливает работу заданного потока.

Синтаксис

DWORD SuspendThread(

HANDLE hThread // дескриптор потока

);

Параметры

hThread

[in] Дескриптор потока, работа которого приостанавливается.

Windows NT/2000/XP: Дескриптор должен иметь право доступа THREAD_SUSPEND_RESUME. Для получения дополнительной информации, см. статью Защита потока и права доступа.

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - счет времени предыдущей приостановки работы потока; иначе, оно равно - (минус) 1. Чтобы получить дополнительные данные об ошибках, используйте функцию GetLastError.

Замечания

Если функция завершается успешно, выполнение заданного потока приостанавливается, а счет времени приостановки работы потока увеличивается. Приостановка потока заставляет его прекратить выполнять код (приложение) в непривилегированном (пользовательском) режиме.

Эта функция, прежде всего, разработана для использования отладчиками. Она не предназначена использоваться для синхронизации потока. Вызов функции SuspendThread потоком, который имеет объект синхронизации, типа мьютекса (флажка блокировки) или критической секции, может привести к тупиковой ситуации, если вызывающий поток пробует получить объект синхронизации, принадлежащий приостановленному потоку. Чтобы избежать этой ситуации, поток в пределах прикладной программы, которое не является отладчиком, должен подать сигнал другому потоку, что приостановил себя. Целевой поток должен быть разработан, чтобы наблюдать за этим сигналом и соответственно реагировать.

Каждый поток имеет счет времени приостановки работы (с максимальным значением MAXIMUM_SUSPEND_COUNT). Если счет времени приостановки больше чем нуль, поток приостанавливается; иначе, поток не приостанавливается и имеет право на исполнение кода. Вызов функции SuspendThread заставляет увеличить счет времени приостановки намеченного потока. Попытка увеличить его за пределы максимального счета времени приостановки вызывает ошибку без увеличения счета.

Функция ResumeThread уменьшает счет времени приостановки работы замороженного потока.

Смотри также

Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, OpenThread, ResumeThread

Размещение и совместимость SuspendThread

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz