#include "stdafx.h"
#include "Framework.h"
#include "Thread.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
/**
*************************************************************
* 函 数 名: CThread
* 描 述: 构造函数,初始化线程句柄和线程id
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 创 建 人:
* 日 期: 2006/11/14
* 修改记录:
* 修改人 修改日期 修改描述
*************************************************************
*/
CThread::CThread():m_ThreadHandle(0), m_ThreadId(0)
{
}
/**
*************************************************************
* 函 数 名: ~CThread
* 描 述: 线程类的析构函数,需要释放线程句柄
* 输入参数:
* 输出参数:
* 返 回 值:
* 创 建 人:
* 日 期: 2006/11/14
* 修改记录:
* 修改人 修改日期 修改描述
*************************************************************
*/
CThread::~CThread()
{
if (0 != m_ThreadHandle)
{
::CloseHandle(m_ThreadHandle);
}
}
/**
*************************************************************
* 函 数 名: Start
* 描 述: 线程的启动函数,该函数负责创建线程并启动线程
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 0:成功, 1:失败
* 创 建 人:
* 日 期: 2006/11/14
* 修改记录:
* 修改人 修改日期 修改描述
*************************************************************
*/
DWORD CThread::Start(void)
{
m_ThreadHandle = CreateThread(NULL, 0, &CThread::ThreadProc, this, 0, &m_ThreadId);
if (0 == m_ThreadHandle)
{
return 1;
}
return 0;
}
/**
*************************************************************
* 函 数 名: End
* 描 述: 结束线程
* 输入参数: 无
* 输出参数: 无
* 返 回 值: void
* 创 建 人:
* 日 期: 2006/11/15
* 修改记录:
* 修改人 修改日期 修改描述
*************************************************************
*/
void CThread::End(void)
{
if (0 != m_ThreadHandle)
{
::CloseHandle(m_ThreadHandle);
m_ThreadHandle = 0;
}
}
/**
*************************************************************
* 函 数 名: ThreadProc
* 描 述: 线程处理函数,它调用派生类实现的Run来完成线程的处理工作
* 输入参数:
* 输出参数:
* 返 回 值:
* 创 建 人:
* 日 期: 2006/11/14
* 修改记录:
* 修改人 修改日期 修改描述
*************************************************************
*/
DWORD CThread::ThreadProc(PVOID pArg)
{
if (NULL == pArg)
{
return 1;
}
CThread* thr = (CThread*)pArg;
thr->Run();
return 1;
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
windows线程之c++封装 class CThread { public: CThread(); virtual ~CThread(); // 启动线程 DWORD Start(void); // 结束线程 void End(void); // 线程执行函数 virtual void Run(void) = 0; private: static DWORD ThreadProc(PVOID pArg); HANDLE m_ThreadHandle; DWORD m_ThreadId; };
资源推荐
资源详情
资源评论
收起资源包目录
Thread.rar (2个子文件)
Thread
Thread.h 906B
Thread.cpp 3KB
共 2 条
- 1
磐石028
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页