SwitchToThread 函式 (processthreadsapi.h)

造成呼叫執行緒執行目前處理器上已就緒可執行的其他執行緒。 操作系統會選取要執行的下一個線程。

Syntax

BOOL SwitchToThread();

傳回值

如果呼叫 SwitchToThread 函式會導致作業系統將執行切換至另一個線程,則傳回值為非零。

如果沒有其他線程可供執行,則操作系統不會將執行切換至另一個線程,而傳回值為零。

備註

在呼叫線程的處理器上,最多一個線程排程時間配量會產生執行。 即使該處理器處於閑置狀態,或正在執行較低優先順序的線程,操作系統也不會將執行切換到另一個處理器。

在產生線程的時間配量經過之後,操作系統會重新排程產生線程的執行。 重新排程取決於產生線程的優先順序,以及可供執行之其他線程的狀態。

請注意,操作系統不會切換至只由並行控制防止執行的線程。 例如,I/O 完成埠或線程集區會限制可執行的相關聯線程數目。 如果線程數目上限已在執行中,則在執行中的線程完成之前,不會執行其他相關聯的線程。 如果線程使用 SwitchToThread 等候其中一個額外的相關聯線程完成某些工作,進程可能會死結。

若要編譯使用此函式的應用程式,請將_WIN32_WINNT定義為0x0400或更新版本。 如需詳細資訊,請參閱 使用 Windows 標頭

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

處理序和執行緒函式

SuspendThread

暫停線程執行

執行緒