线程怎么暂停和恢复?

 我来答
重庆新华电脑学校
2022-06-06 · 学动漫、设计、电竞、电商、短视频、软件等
重庆新华电脑学校
重庆新华电脑学校隶属于新华教育集团,经重庆市人力资源和社会保障局审批成立的重庆地区大规模IT人才教育基地。是国家信息化教育全国示范基地,中国IT教育十大影响力品牌学校。
向TA提问
展开全部
暂停线程执行的API函数是SuspendThread,声明如下:
DWORD SuspendThread(HANDLEhThread);
其中,参数hThread是要暂停的线程句柄,该句柄必须要有THREAD SUSPEND RESUME访问权限。如果函数成功就返回以前暂停的次数,否则返回-1,此时可以用GetLastError来获得错误码。当函数成功的时候,线程将暂停执行,并且线程的暂停次数递增一次。每个线程都有一个暂停计数器,最大值为MAXIMUMSUSPENDCOUNT,如果暂停计数器大于零,线程则暂停执行。另外,这个函数一般不用于线程同步,如果对一个拥有同步对象(比如信号量或临界区)的线程调用SuspendThread函数,则有可能会引起死锁,尤其当被暂停的线程想要获取同步对象的时候。恢复线程执行的函数是ResumeThread,但不是说调用该函数线程就会恢复执行,该函数主要是减少暂停计数器的次数。线程的暂停计数器如果恢复到零,线程才会恢复执行。
暂停线程执行的API函数是SuspendThread,声明如下:
DWORD SuspendThread(HANDLEhThread);
其中,参数hThread是要暂停的线程句柄,该句柄必须要有THREAD SUSPEND RESUME访问权限。如果函数成功就返回以前暂停的次数,否则返回-1,此时可以用GetLastError来获得错误码。当函数成功的时候,线程将暂停执行,并且线程的暂停次数递增一次。每个线程都有一个暂停计数器,最大值为MAXIMUMSUSPENDCOUNT,如果暂停计数器大于零,线程则暂停执行。另外,这个函数一般不用于线程同步,如果对一个拥有同步对象(比如信号量或临界区)的线程调用SuspendThread函数,则有可能会引起死锁,尤其当被暂停的线程想要获取同步对象的时候。
恢复线程执行的函数是ResumeThread,但不是说调用该函数线程就会恢复执行,该函数主要是减少暂停计数器的次数。线程的暂停计数器如果恢复到零,线程才会恢复执行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式