VC线程的挂起及唤醒

时间:2021-02-06 14:35:30

本文附上简单实例,线程控制器。如需要请点击http://download.csdn.net/detail/s1915/8334011


线程的挂起是指暂停线程的执行,让其进入系统的挂起线程队列,并摆脱系统调度线程的调度。唤醒线程是指将被挂起的线程从挂起队列移到系统的就绪队列,等待系统的调度,进而再次运行。

 

在MFC中可以使用CWinThread 类的SuspendThread 成员函数挂起一个线程,使用ResumeThread 函数唤醒一个线程。它们的函数原型如下:

DWORD CWinThread::SuspendThread();

DWORD CWinThread::ResumeThread();

它们的返回值都是线程先前的挂起数。

 

在Windows SDK 编程中可以使用全局的SuspendThread函数和ResumeThread函数挂起和唤醒线程。其函数原型如下:

DWORD SuspendThread(HANDLE hThread);

DWORD ResumeThread(HANDLE hThread);

hThread是需要被控制的线程的句柄。

 

线程的终止

BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);

或者调用AfxEndThread即可。

若想利用一个线程去结束另外一个线程。则需进行线程中的通信,给另一个线程发送消息后,对这个消息做出结束的响应即可。