zoukankan      html  css  js  c++  java
  • 线程

    一、创建线程的方法

    头文件中声明线程函数

    static void ThreadFunc(); 

    头文件添加protected型变量:

    HANDLE hThread; 
    DWORD ThreadID; 
    //分别代表线程的句柄和ID。 

    编写线程函数

    void CMultiThread1Dlg::ThreadFunc() 
    { 
    
    } 

    创建线程 
    对话框模式的,就是oninitialdialog里

    hThread=CreateThread(NULL, 
    0, 
    (LPTHREAD_START_ROUTINE)ThreadFunc, 
    NULL, 
    0, 
    &ThreadID);

    二、线程如何获取类成员变量;

    在CXXXDlg类中声明static UINT ThreadName( LPVOID lpParam );

    类外:

    UINT CXXXDlg::ThreadName( LPVOID lpParam )
    {
            CXXXDlg* p = (CXXXDlg*)lpParam;
            这样就能用了。
    }

    调用传入this 

    ThreadName(this);

    三、常见错误

    用VC创建新线程易出的问题error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'

    解决方案:

    (1)如果线程要执行的是类的成员函数,则必须用static声明为静态函数   
    如:   

    class   echo   
    {   
    static   DWORD   WINAPI   ThreadFunc(LPVOID     pvoid)   
    ......   
    ......   
    }   
  • 相关阅读:
    利用requests, beautifulsoup包爬取股票信息网站
    Mac自带编码转换工具iconv
    Flask 快速入门
    HTML模版组件
    JavaScript正则表达式及jQuery回顾
    jQuery 教程
    Document
    Document
    Document
    Document
  • 原文地址:https://www.cnblogs.com/tinaluo/p/7368336.html
Copyright © 2011-2022 走看看