CWinThread的使用

本文介绍了一个基于MFC的自定义线程类CUserThread,该类继承自CWinThread并利用了MFC内部未公开的构造函数及成员变量来实现线程启动。通过这种方式可以更好地控制线程行为并进行线程间通讯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


      MFC的多线程启动使用的是:AfxBeginThread(),是对CWinThread的一层外包装。直接使用CWinThread会获得更好的控制,还可以储存“线程间通讯”数据。下面是一个简单的CWinThread的子类,其中使用了MFC中未公开的两个东东。程序里面有注释啦。

#include <afxwin.h>

CWinApp TheApp;


class CUserThread : public CWinThread
{
public:  // Member functions
    CUserThread(AFX_THREADPROC pfnThreadProc);

    static UINT ThreadFunc(LPVOID param);

public:  // Member data
    int m_nStartCounter;

private: // The "real" startup function
    virtual void Go();
};

CUserThread::CUserThread(AFX_THREADPROC pfnThreadProc)
 : CWinThread(pfnThreadProc, NULL)  // Undocumented constructor
{
    m_bAutoDelete = FALSE;

    // Set the pointer to the class to be the startup value.
    // m_pThreadParams is undocumented,
    // but there is no work-around.
    m_pThreadParams = this;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值