`
725137
  • 浏览: 80485 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

c++中使用类成员函数做为线程函数

    博客分类:
  • c++
阅读更多

typedef unsigned (__stdcall   CAdapterObj::* Fun )( void  );
 typedef unsigned (__stdcall   * pThread )( void * );
 Fun func = (Fun)&CAdapterObj::ThreadFun;

 DWORD dwAddress;
 memcpy(&dwAddress,&func ,sizeof(func ));

 pThread pThrd;
 memcpy(&pThrd, &dwAddress, sizeof(pThrd));

 HANDLE handle  = (HANDLE) _beginthreadex(NULL,0,pThrd, reinterpret_cast< void* >(this) ,0,NULL);

分享到:
评论

相关推荐

    C++非静态成员函数完全可以作为线程函数

    一般地,线程要读写类的私有成员变量,只有两种方法:将全局函数声明为类友元friend,或者使用静态的成员函数static。那非静态的成员函数呢?一般地方都说的是,不行,做不了。。。为什么不行?都是代码区的代码,...

    C++ 线程函数是类的成员函数

    C++ 线程函数是类的成员函数 C++ 线程函数是类的成员函数

    c++成员函数成为线程函数

    自己总结的如何在多线程中调用c++成员函数和使用c++类中标量

    C++线程的高级封装, 支持对类成员函数开启线程

    示例: Thread t1; t1.Start(ThreadStart(&ThreadFunction, (void*)1)); t1.Join();... // 类, ThreadMethod为非静态成员 Thread t2; t2.Start(ThreadStart(&test, &Test::ThreadMethod)); t2.Join();

    当析构函数遇到多线程── C++ 中线程安全的对象回调

    如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以...

    详解C++ thread用法总结

    std::thread类成员函数: (1)、get_id:获取线程ID,返回一个类型为std::thread::id的对象。 (2)、joinable:检查线程是否可被join。检查thread对象是否标识一个活动(active)的可行性线程。缺省构造的thread对象、...

    C++线程池/线程工具

    1:可以使用类成员函数/全局函数单独的创建一个线程。 2:可以使用类成员函数/全局函数单独的为线程池添加一个任务,可以带多个参数。 3:线程池的线程数量可手动扩展,稍作修改可以修改为自动扩充。 是否下载可前往...

    当析构函数遇到多线程── C++ 中线程安全的对象回调 PDF

    如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以...

    《当析构函数遇到多线程》PPT

    这是陈硕在 2009 年上海 C++ 技术大会演讲《当析构函数遇到多线程》的 PPT 投影片,可自由用于个人学习,其他使用需得到作者许可。 简介:编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死...

    线程委托库C++源码(内置多线程浏览器实现)

    线程委托的概念主要是在任意线程中委托其他线程执行代码,例如调用一个API函数,或者调用一个对象的成员函数。 源码使用了C++模板库,内部采用ATL实现。使用时只需关注压缩文件中的Raptor.h文件,这是封装好的类,...

    c++11线程与线程池Demo 完整vs2013工程

    利用c++11标准库实现的线程和线程池样例程序,可调用任意参数的函数作为线程任务,支持类成员函数的调用。

    Qt&C++若干小工具类请自行取用

    `,并在进度条对话框初始化函数中启用工作线程 - 使用计时器,重写virtual void timeEvent函数,获取当前工作状态和进度,当状态完成时销毁工作线程和任务对象,关闭定时器,关闭对话框 - 工作线程类中重写run函数...

    C++多线程获取返回值方法详解

    主要介绍了C++多线程获取返回值方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    C++面试题,针对资深开发工程师面试题目含详细解答

    7 C++ 的一个类中,静态成员函数和普通成员函数有什么区别? 8 简述指针常量与常量指针区别 9 如何避免“野指针” 10 C++ 仿函数是干什么用的? 11 什么时候使用虚析构函数? 为什么? 12 为什么将 0.1f 更改为 0 ...

    Visual C++开发经验技巧宝典(第1章)

    0070 如何用非静态的类成员函数作为线程函数 29 0071 如何在常量函数中修改数据成员 30 1.9 STL模板库 30 0072 为什么在程序中广泛使用STL 30 0073 如何在STL中使用容器 30 0074 STL算法的优点 31 0075...

    C++11/14 线程调用类对象和线程传参的方法

    主要介绍了C++11/14 线程调用类对象和线程传参的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    createthread函数用法详解

    详细介绍了createthread函数 在程序中的运用 对于c++多线程的学习有很大帮助

    Boost C++扩展库

    Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会...Python 把C++类和函数映射到Python之中;Pool 内存池管理;smart_ptr 智能指针。

    Effective C++ 中文版

    为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。  《Effective C++中文版(第3版改善程序与设计的55个具体做法)》的重要...

Global site tag (gtag.js) - Google Analytics