C++多线程编程——线程的挂起、唤醒与终止
2012-12-06 19:33
330 查看
在线程创建并运行后,用户可以对线程执行挂起和终止操作.所谓挂起,是指暂停线程的执行,用户可以通过气候的唤醒操作来恢复线程的执行.
线程终止是指结束线程的运行.系统提供了SuspendThread,ResumeThread和TerminateThread等函数来实现线程的挂起、唤醒和停止操作。
SuspendThread
该函数用于挂起线程.语法格式如下:
hThread: 表示线程句柄
返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF
ResumeThread
该函数用于煎炒线程挂起的次数,如果线程挂起的次数为0,将唤醒线程.语法格式如下:
hThread: 表示线程句柄
返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF
ExitThread
该函数用于结束当前线程.语法格式如下:
dwExitCode: 表示线程退出代码
TerminateThread
该函数用于强制终止线程的执行.语法格式如下:
hThread: 表示待终止的线程句柄
dwExitCode: 表示线程退出代码
例子:
线程代码:
创建线程:
挂起线程:
唤醒线程:
终止线程:
线程终止是指结束线程的运行.系统提供了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); }
相关文章推荐
- C++多线程编程——线程的挂起、唤醒与终止
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- C++ 线程的创建,挂起,唤醒,终止
- MFC线程的挂起、唤醒和终止
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)(r)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- C/C++ Windows API——线程挂起、唤醒与终止
- 【Java并发编程】:线程挂起、恢复与终止
- Java并发编程之三:线程挂起、恢复与终止的正确方法
- 转: 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)
- 线程的挂起,唤醒和终止
- 线程的挂起,唤醒和终止
- C++多线程编程――线程的挂起、唤醒与终止