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 |