MFC的work线程

首先可以 在 vc中 新建一个class ,是以 CWinThread为 基类

class CProducerThread : public CWinThread
{
 DECLARE_DYNCREATE(CProducerThread)
public:
 CProducerThread(AFX_THREADPROC pfnThreadproc,void *parent);
  static UINT ThreadFunc(LPVOID param);
 virtual void Go();   // 是补上的
 virtual ~CProducerThread();
protected:
 CProducerThread();           // protected constructor used by dynamic creation

// Attributes
public:

// Operations
public:

// Overrides
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CProducerThread)
 public:
 virtual BOOL InitInstance();
 virtual int ExitInstance();
 //}}AFX_VIRTUAL

// Implementation

public:
 void *m_parent;
protected:
 

 // Generated message map functions
 //{{AFX_MSG(CProducerThread)
  // NOTE - the ClassWizard will add and remove member functions here.
 //}}AFX_MSG

 DECLARE_MESSAGE_MAP()
};

CProducerThread::CProducerThread(AFX_THREADPROC pfnThreadproc,void *parent):CWinThread(pfnThreadproc,NULL)
{
 m_parent=parent;
 m_bAutoDelete=FALSE;
 m_pThreadParams=this;
}

UINT CProducerThread::ThreadFunc(LPVOID param)
{
 CProducerThread *pThread=(CProducerThread *)param;
 pThread->Go();
 return 0;
}
void CProducerThread::Go()
{
CpvDlg *p=static_cast<CpvDlg *>(m_parent);

}

main 中:

CProducerThread *p=new CProducerThread(CProducerThread::ThreadFunc,this);

p->CreateThread();

析构函数中:WaitForSingleObject(p->m_hThread,INFINITE)  delete p。。 如果上面的m_bAutoDelete=FALSE; ,m_bAutoDelete=TRUE,则不需要删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡在床板下_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值