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.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

暫停線程執行

執行緒