挂起线程执行

线程可以暂停和恢复另一个线程的执行。 当线程暂停时,不会在处理器上计划该线程的时间。

如果使用 CREATE_SUSPENDED标志) 以挂起状态 (创建线程,则在另一个线程调用具有挂起线程句柄的 ResumeThread 函数之前,该线程才会开始执行。 这可用于在线程开始执行之前初始化线程的状态。 创建时挂起线程对于一次性同步可能很有用,因为这可确保在调用 ResumeThread 时挂起的线程将执行其代码的起点。

SuspendThread 函数不用于线程同步,因为它不控制暂停线程执行的代码中的点。 此函数主要用于调试器。

线程可以通过调用 SleepSleepEx 函数在指定间隔内暂时生成其执行,这在线程响应用户交互的情况下尤其有用,因为它可以延迟执行足够长的时间,以允许用户观察其操作的结果。 在睡眠间隔期间,不会在处理器上计划线程的时间。

SwitchToThread 函数类似于 SleepSleepEx,但不能指定间隔。 SwitchToThread 允许线程放弃其时间片。