AfxBeginThread和AfxEndThread - 冷秋魂的专栏 - CSDN博客
来源:互联网 发布:如何分析qpcr数据 编辑:程序博客网 时间:2024/06/13 22:51
AfxBeginThread和AfxEndThread 收藏
启动线程:
CWinThread* AfxBeginThread( 线程函数, this );
线程的退出:
在刚刚使用的时候,退出线程的方法有问题,导致退出的时候异常。
下面说线程退出的方法:
1. 线程函数返回
线程都在死循环中,当满足一定条件时, return ,也会将线程结束。
2. AfxEndThread
这个函数只能用在线程函数中,当满足一定条件是,调用。
举一个例子:
可以创建一个信号量,用 WaitForSingleObject 函数来检测该信号量的状态。
成员变量 m_hThreadEvent;
m_hThreadEvent = CreateEvent( NULL, FALSE, FALSE, NULL );
线程的执行函数:
for ( ; ; )
{
DWORD dwRetVal ;
dwRetVal = WaitForSingleObject ( m_hThreadEvent , 100 );
if ( dwRetVal == WAIT_TIMEOUT )
{
// TODO:
}
else
{
// stop receive text thread.
DWORD dwExitCode ;
GetExitCodeThread ( m_pThreadRecv -> m_hThread , & dwExitCode );
AfxEndThread ( dwExitCode , TRUE );
}
}
要结束线程时,使用 SetEvent ,将信号量置为有信号。
该线程是在信号量有信号时,退出。
3. TerminateThread
在 CWinThread 对象中有线程的句柄,可以使用该句柄强行杀死线程。但是不推荐使用这种方式,当可以正常结束的时候,选择前两种方法较好。
- AfxBeginThread和AfxEndThread - 冷秋魂的专栏 - CSDN博客
- AfxBeginThread和AfxEndThread
- AfxBeginThread和AfxEndThread
- AfxBeginThread和AfxEndThread
- AfxBeginThread和AfxEndThread
- AfxBeginThread和AfxEndThread
- 修改CSDN博客专栏的标题和副标题颜色
- AfxBeginThread与InterLockedIncrement与AfxEndThread
- 解析“extern” - keen的专栏 - CSDN博客
- CSDN开设博客专栏的方法
- CSDN 专栏博客推荐
- CSDN博客专栏 哈哈哈哈
- CSDN博客专栏推荐
- _T()和L的特点与区别是什么? - yihan422的专栏 - CSDN博客
- CSDN博客专栏重磅推出!
- CSDN博客专栏申请方法
- 【CSDN如何创建博客专栏?】
- 如何申请CSDN博客专栏
- 单网卡创建多个本地连接(创建虚拟本地连接)
- java 数据挖掘 URL 内容流
- 处理器时间函数 clock_t clock( void );
- 开源杀毒软件CLAMWIN
- 1701 math
- AfxBeginThread和AfxEndThread - 冷秋魂的专栏 - CSDN博客
- exec procedure every 5mins
- Creating a hand cursor over a component
- struts2的国际化(入门)
- 再谈String
- 高精度加、减、乘法运算
- OPENCV 编译错误 cvaux
- BASE64Encoder
- 优化MySQL数据库性能的八种方法