设为首页 加入收藏

TOP

14.3.2 终止线程
2013-10-07 01:18:13 来源: 作者: 【 】 浏览:69
Tags:14.3.2 终止 线程

14.3.2  终止线程

当一个线程终止时,关闭该线程所有属性的所有对象句柄,一般来说线程的终止包括正常终止和异常终止。正常终止是控制函数到达函数中的结束点,该线程即终止,对于工作者线程来说,也可以利用函数AfxEndThread();来终止线程,其函数原型如下:

  1. void AfxEndThread( UINT nExitCode ); 

参数nExitCode表示线程的退出码。

用户界面线程可以通过调用PostQuitMessage()函数发送退出消息结束线程。函数原型如下:

  1. void PostQuitMessage(int nExitCode); 

线程的异常终止是由于线程内部出现无法终止的情况,在其他线程中强行结束该进程,可以调用函数BOOL TerminateThread();实现异常终止。函数原型如下:

  1. BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode); 

参数hThread表示要终止的线程的句柄,在创建线程时的返回的指针中的成员变量里面可以得到线程的句柄。dwExitCode表示退出码。如果调用失败,函数返回0,否则返回非0值。需要注意的是,调用该函数以后,应该利用CloseHandle函数关闭句柄,释放线程所占用的堆栈资源。

警告:必须在CloseHandle()函数调用前调用TerminateThread()函数,否则会发生无效句柄的错误。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇14.1.1 多任务介绍 下一篇14.3.1 创建线程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: