看流星社区

 找回密码
 注册账号
查看: 1782|回复: 0

VC++ 在类中添加多线程操作

[复制链接]

该用户从未签到

发表于 2015-3-31 14:20:27 | 显示全部楼层 |阅读模式
CTestThread.h

public:
    CTestThread(void);
    ~CTestThread(void);
public:
    void setvalue();
    static DWORD _stdcall SecondThreadFunc(LPVOID lparam); //多线程测试,线程成员函数必须是静态变量,不知道为什么?第二种可以使全局函数
CTestThread.cpp

#include <time.h>  
#include <windows.h>
#include <process.h>


using namespace std;



CTestThread::CTestThread(void)
{
    tp.aa=14;
    tp.bb=124.789;
}


CTestThread::~CTestThread(void)
{
}

DWORD  _stdcall CTestThread::SecondThreadFunc(LPVOID lparam)
{
    //WaitForSingleObject(ctrlevent, INFINITE);  //等待事件触发
    //SetEvent/ResetEvent  事件发信号 与不发信号

    /* MYCLASS* pThis = (MYCLASS*)lparam;
    pThis->DoRecvProc();*/
    CTestThread::ThreadParam *pp = ( CTestThread::ThreadParam *)lparam;
     pp->aa=18;
     pp->bb=87654.321;

    _endthreadex(0);
    return 0;

}
void CTestThread::setvalue()
{
    //tp.aa=17;
    //tp.bb=123456.789;
    HANDLE hThread;
    unsigned threadID;
    // hThread=(HANDLE)_beginthreadex(NULL,0,(unsigned(__stdcall *)(void *))SecondThreadFunc,NULL,0,&threadID);
     hThread=  (HANDLE)_beginthreadex(NULL,0,(unsigned(_stdcall *)(void *))SecondThreadFunc,&tp,0,NULL);
    WaitForSingleObject(   hThread,   INFINITE   );   
    CloseHandle(   hThread   );  
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-26 14:14

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表