SuspendThread 函数 (processthreadsapi.h)

挂起指定的线程。

注释

64 位应用程序可以使用 Wow64SuspendThread 函数挂起 WOW64 线程线程。

语法

DWORD SuspendThread(
  [in] HANDLE hThread
);

参数

[in] hThread

要挂起的线程的句柄。

句柄必须具有 THREAD_SUSPEND_RESUME 访问权限。 有关详细信息,请参阅 线程安全和访问权限

返回值

如果函数成功,则返回值为线程的上一个挂起计数;否则,为 (DWORD) -1. 若要获取扩展的错误信息,请使用 GetLastError 函数。

注解

如果函数成功,将挂起指定线程的执行,并且线程的挂起计数会递增。 挂起线程会导致线程停止执行用户模式(应用程序)代码。

此函数主要用于调试器使用。 它不用于线程同步。 如果在拥有同步对象的线程(如互斥体或关键节)上调用 SuspendThread ,如果调用线程尝试获取挂起线程拥有的同步对象,则可能会导致死锁。 为了避免这种情况,不是调试器的应用程序中的线程应向另一个线程发出挂起信号。 目标线程必须设计为监视此信号并相应地响应。

每个线程都有一个挂起计数(最大值 为 MAXIMUM_SUSPEND_COUNT)。 如果挂起计数大于零,则线程将挂起;否则,该线程不会暂停,并且有资格执行。 调用 SuspendThread 会导致目标线程的挂起计数递增。 尝试递增超过最大挂起计数会导致错误,而不会递增计数。

ResumeThread 函数会递减挂起线程的挂起计数。

Windows Phone 8.1: Windows Phone 8.1 及更高版本上的 Windows Phone 应用商店应用支持此功能。

Windows 8.1Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。

要求

要求 价值
最低支持的客户端 Windows XP [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2003 [桌面应用 |UWP 应用]
目标平台 Windows操作系统
标头 processthreadsapi.h (包括 Windows Vista 上的 Windows.h、Windows 7、Windows Server 2008 Windows Server 2008 R2)
图书馆 Kernel32.lib;Windows Phone 8.1 上的 WindowsPhoneCore.lib
DLL Kernel32.dll;Windows Phone 8.1 上的 KernelBase.dll

另请参阅

OpenThread

进程和线程函数

ResumeThread

暂停线程执行

话题