点击这里给我发消息 点击这里给我发消息

VC中创建多个线程的方法

添加时间:2013-12-7
    相关阅读: 开发 程序 DW VC

       作中我们经常会遇到要建立多个线程,以此方便于我们可以同时执行多个事件。这也是我们在VC开发中的一项基础,虽然我曾多次用到,但也会常常忘记。这次记下来,作为一个笔记,为大家学习提供方便。
    在VC中,无非是创建线程和写线程函数
    1,  创建线程:
    #include <windows.h>
    在MFC中通常在OnInitDialog()下面创建线程
    //定义参数:SerialControl
    //------------------变量函数初始化调用区域--------
      CSerialControl * m_SerialControl=new CSerialControl();
    m_SerialControl->Create(NULL,\"aa\",WS_CHILD,CRect(0,0,0,0),this,2,NULL);
      m_SerialControl->InitAllSerialPort();
    //------------------------------------------------
    HANDLE hThread1=CreateThread(NULL,0,DetectCar,(LPVOID)SerialControl,0,NULL);
    CloseHandle(hThread1);//此处关闭线程的句柄,但不意味关闭线程,线程在程序退出时关闭
    参数说明:
    HANDLE CreateThread(
    LPSECURITY_ATTRIBUTES lpThreadAttributes,//必须为NULL
    DWORD dwStackSize, //一般为0 ,表示堆栈与外部大小相同
    LPTHREAD_START_ROUTINE lpStartAddress, //线程函数名称
    LPVOID lpParameter, //传递给线程函数的参数,如果为多个,自定义结构体
    DWORD dwCreationFlags, //0表示创建线程后立即启动线程,如果不是立即启动需要调用ResumeThread函数
    LPDWORD lpThreadId);//用来标记该线程的名称

    2,  定义线程函数:
    //函数的定义
    static       DWORD WINAPI DetectCar(LPVOID lpParameter); //一般用静态函数
    //remark:由于线程函数是静态函数,如果要在函数中用到对象,必须通过
    //函数的实现
    /***************************************************
    *作者:万田
    *时间:2007-13-03
    *函数:DetectCar() 说明:检测线程
    ****************************************************/
    DWORD WINAPI CISSDlg::DetectCar(LPVOID lpParameter)
    {
           TRACE(\"Thread DetectCar is running\\r\\n\");
           CSerialControl* SControl=(CSerialControl*)lpParameter;
           //define:record which road is car
           int Carexit=0;
           while (TRUE)//do this forever
           {
                  //get:which road exit car
                  Carexit=SControl->m_GroudDetector1.CarExists();
                  ***********
           } [Page]
           return true;
    }

相关VC中创建多个线程的方法

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册