C++多线程编程

您所在的位置:网站首页 线程的挂起和恢复 C++多线程编程

C++多线程编程

2023-08-29 08:19| 来源: 网络整理| 查看: 265

C++多线程编程——线程的挂起、唤醒与终止 (2010-10-11 10:09:04) 转载▼ 标签: 杂谈 分类:Win32

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

SuspendThread 该函数用于挂起线程.语法格式如下:

DWORD SuspendThread(HANDLE hThread); hThread: 表示线程句柄返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF

ResumeThread 该函数用于煎炒线程挂起的次数,如果线程挂起的次数为0,将唤醒线程.语法格式如下:

DWORD ResumeThread(HANDLE hThread); hThread: 表示线程句柄返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF

ExitThread 该函数用于结束当前线程.语法格式如下:

VOID ExitThread(DWORD dwExitCode); dwExitCode: 表示线程退出代码

TerminateThread 该函数用于强制终止线程的执行.语法格式如下:

BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode); hThread: 表示待终止的线程句柄dwExitCode: 表示线程退出代码

例子: 线程代码:

DWORD __stdcall ThreadProc(LPVOID lpParameter) { CMultiThreadDlg * pdlg = (CMultiThreadDlg *)lpParameter; pdlg->m_ProCtrl.SetRange32(0,99999); for (int i = 0; i < 99999; i++) { pdlg->m_ProCtrl.SetPos(i); } return 0; }

创建线程:

void CMultiThreadDlg::OnBtCreate() { m_hThread = CreateThread(NULL,0,ThreadProc,this,0,NULL); }

挂起线程:

void CMultiThreadDlg::OnBtSuspend() { SuspendThread(m_hThread); }

唤醒线程:

void CMultiThreadDlg::OnBtResume() { ResumeThread(m_hThread); }

终止线程:

void CMultiThreadDlg::OnBtTerminate() { TerminateThread(m_hThread); }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3