暂停线程执行

【勇芳软件工作室】汉化HomePreviousNext

线程可以使用SuspendThreadResumeThread功能挂起并恢复执行另一个线程。线程暂停时,它不会在处理器上安排时间。

SuspendThread函数对于同步不是特别有用,因为它不会控制线程执行被暂停的代码中的点。但是,您可能希望在等待用户输入的情况下暂停线程,从而可能会取消线程正在执行的工作。如果用户输入取消了工作,则退出线程;否则,请调用ResumeThread.

如果在挂起状态(使用CREATE_SUSPENDED标志)创建一个线程,则直到另一个线程使用挂起线程的句柄调用ResumeThread才开始执行。这对于在开始执行之前初始化线程的状态很有用。有关使用此方法修改线程优先级的示例,请参阅使用多线程多文档界面应用程序.在创建时暂停线程对于一次同步可能是有用的,因为这样可以确保挂起的线程在调用ResumeThread时将执行其代码的起始点。

线程可以通过调用睡觉SleepEx函数临时生成指定的时间间隔。这对于线程响应用户交互的情况尤其有用,因为它可以延迟执行时间足以允许用户观察结果的行为。在睡眠间隔期间,线程不会在处理器上安排时间。

SwitchToThread功能类似于睡觉SleepEx,但不能指定间隔。SwitchToThread允许线程放弃其时间片。