Поделиться через


Функция SuspendThread (processthreadsapi.h)

Приостанавливает указанный поток.

Замечание

64-разрядное приложение может приостановить поток потока WOW64 с помощью функции Wow64SuspendThread.

Синтаксис

DWORD SuspendThread(
  [in] HANDLE hThread
);

Параметры

[in] hThread

Дескриптор потока, который должен быть приостановлен.

Дескриптор должен иметь право THREAD_SUSPEND_RESUME доступа. Дополнительные сведения см. в разделе Thread Security and Access Rights.

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

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

Замечания

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

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

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

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

Windows Phone 8.1: Эта функция поддерживается для приложений Магазина Windows Phone в Windows Phone 8.1 и более поздних версиях.

Windows 8.1 и Windows Server 2012 R2: эта функция поддерживается для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и более поздних версий.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
Заголовок processthreadsapi.h (включая Windows.h в Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib; WindowsPhoneCore.lib в Windows Phone 8.1
Библиотека dll Kernel32.dll; KernelBase.dll в Windows Phone 8.1

См. также

OpenThread

функции процессов и потоков

ResumeThread

приостановка выполнения потоков

Треды