解决方案

C++多线程编程——线程的挂起、唤醒与终止

seo靠我 2023-09-25 01:46:31

在线程 创建并运行后,用户可以对线程执行 挂起和 终止操作.所谓,是指暂停线程的执行,用户可以通过气候的操作来恢复线程的执行.线程是指结束线程的运行.系统提供了SuspendThread,ResumeSEO靠我Thread和TerminateThread等函数来实现线程的挂起、和停止操作。

SuspendThread

该函数用于挂起线程.语法格式如下: DWORD SuspendThread(HANDLE hTSEO靠我hread); ·         hThread: 表示线程句柄 ·         返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF ResuSEO靠我meThread

该函数用于煎炒线程挂起的次数,如果线程挂起的次数为0,将 唤醒线程.语法格式如下: DWORD ResumeThread(HANDLE hThread); ·         hThrSEO靠我ead: 表示线程句柄 ·         返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF ExitThread

该函数用于结束当前线程.语法格式SEO靠我如下: VOID ExitThread(DWORD dwExitCode); ·         dwExitCode: 表示线程退出代码 TerminateThread

该函数用于强制 终止线程的执行SEO靠我.语法格式如下: BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode); ·         hThread: 表示待终止的线程句柄 ·    SEO靠我     dwExitCode: 表示线程退出代码 例子 :

线程代码: DWORD __stdcall ThreadProc(LPVOID lpParameter) { CMultiThreadDlgSEO靠我 * pdlg = (CMultiThreadDlg *)lpParameter; pdlg->m_ProCtrl.SetRange32(0,99999); for (int i = 0; i < 9SEO靠我9999; i++) { pdlg->m_ProCtrl.SetPos(i); } return 0; } 创建线程: void CMultiThreadDlg::OnBtCreate() { m_hSEO靠我Thread = CreateThread(NULL,0,ThreadProc,this,0,NULL); } 挂起线程: void CMultiThreadDlg::OnBtSuspend() { SEO靠我SuspendThread(m_hThread); } 唤醒线程: void CMultiThreadDlg::OnBtResume() { ResumeThread(m_hThread); } 终止SEO靠我线程: void CMultiThreadDlg::OnBtTerminate() { TerminateThread(m_hThread); }

转载于:https://blog.51cto.com/SEO靠我wellwy/492070

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2