SuspendThread 函式 (processthreadsapi.h)
暫停指定的線程。
64 位應用程式可以使用 Wow64SuspendThread 函式暫停 WOW64 線程。
語法
DWORD SuspendThread(
[in] HANDLE hThread
);
參數
[in] hThread
要暫停之線程的句柄。
句柄必須具有 THREAD_SUSPEND_RESUME 訪問許可權。 如需詳細資訊,請參閱 線程安全性和訪問許可權。
傳回值
如果函式成功,則傳回值是線程先前的暫停計數;否則為 (DWORD) -1
。 若要取得擴充的錯誤資訊,請使用 GetLastError 函 式。
備註
如果函式成功,就會暫停指定線程的執行,並遞增線程的暫停計數。 暫停線程會導致線程停止執行使用者模式 (應用程式) 程序代碼。
此函式主要是設計供調試程式使用。 它不適合用於線程同步處理。 如果呼叫線程嘗試取得暫止線程所擁有的同步處理物件,例如 Mutex 或 critical 區段,呼叫 SuspendThread 可能會導致死結。 為了避免這種情況,不是調試程式之應用程式內的線程應該向另一個線程發出訊號,以暫停本身。 目標線程必須設計為 watch 此訊號,並適當地回應。
每個線程都有暫停計數 (,最大值為 MAXIMUM_SUSPEND_COUNT) 。 如果暫停計數大於零,線程就會暫停;否則,線程不會暫停,而且符合執行資格。 呼叫 SuspendThread 會導致目標線程的暫停計數遞增。 嘗試遞增超過最大暫停計數會導致錯誤,而不會遞增計數。
ResumeThread 函式會遞減暫止線程的暫停計數。
Windows Phone 8.1:Windows Phone Windows Phone 8.1 和更新版本上的市集應用程式支援此函式。
Windows 8.1 和 Windows 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 |