SwitchToThread 函数 (processthreadsapi.h)

导致调用线程执行准备好在当前处理器上运行的另一个线程。 操作系统选择下一个要执行的线程。

语法

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)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

进程和线程函数

SuspendThread

挂起线程执行

线程