线程怎么暂停和恢复?
1个回答
2022-06-06 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
暂停线程执行的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,但不是说调用该函数线程就会恢复执行,该函数主要是减少暂停计数器的次数。线程的暂停计数器如果恢复到零,线程才会恢复执行。
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,但不是说调用该函数线程就会恢复执行,该函数主要是减少暂停计数器的次数。线程的暂停计数器如果恢复到零,线程才会恢复执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询