C++将一个成员函数怎么跑在一个线程里面
最近在写个项目,比如有一个类的成员函数,这个成员函数会做一些很重的事情 比如一个HTTP请求。我在线程A里面调用这个
成员函数不现实,想将这个成员函数分派到一个线程里面去跑。有什么优雅的方法么?
比如
class ClassA obj;
obj.fun() //这个fun就是HTTP请求或者其他一些很重的事情要执行几秒。我想把这个放到线程里面去执行。
我自己现在用的方法不好看。比如有个线程池 有一个线程是空闲的。我在类里面定义了一个成员static函数
static int threadFun(ClassA *self)
{
self->fun();
}
这样来执行的。封装性不好 。比如我要执行fun2() 又要单独去写个threadFun2 。很丑 。
有谁有更好的办法吗?
本来想用汇编代码把this指针给ecx然后call。也不靠谱 不同编译器的thiscall的调用约定也不太一样。在C++层面是否有方法可以做到?
成员函数不现实,想将这个成员函数分派到一个线程里面去跑。有什么优雅的方法么?
比如
class ClassA obj;
obj.fun() //这个fun就是HTTP请求或者其他一些很重的事情要执行几秒。我想把这个放到线程里面去执行。
我自己现在用的方法不好看。比如有个线程池 有一个线程是空闲的。我在类里面定义了一个成员static函数
static int threadFun(ClassA *self)
{
self->fun();
}
这样来执行的。封装性不好 。比如我要执行fun2() 又要单独去写个threadFun2 。很丑 。
有谁有更好的办法吗?
本来想用汇编代码把this指针给ecx然后call。也不靠谱 不同编译器的thiscall的调用约定也不太一样。在C++层面是否有方法可以做到?
...全文
相关推荐
c++成员函数成为线程函数
自己总结的如何在多线程中调用c++成员函数和使用c++类中标量
C++ 线程函数是类的成员函数
C++ 线程函数是类的成员函数 C++ 线程函数是类的成员函数
C++将类的成员函数作为回调函数
C++将类的成员函数作为回调函数使用介绍
C++成员函数后的const
以下的每一点会给出代码示例说明 一、c++成员函数后的const有以下特点: 1.隐含的this指针以const 类名的类型传递 2.const 只能声明成员函数,不能声明静态函数 (static函数不能有const修饰符,const 成员函数是包含this指针的,这明显不被static函数允许) 3.const 成员函数不能修改对象的任意非静态成员 4.const 成员函数不能调用非const 成员函数 二、另外,const对象与const成员函数相关的内容 1.由const 类名构造的对象只能调用 const方法 2.const对象的构
c++类声明和成员函数分离写法
c++将类成员函数实现与类的声明分离的写法,实现了学生类的分离写法


进程/线程/DLL
