C++将一个成员函数怎么跑在一个线程里面

weixin_42022277 weixin_42022277 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在写个项目,比如有一个类的成员函数,这个成员函数会做一些很重的事情 比如一个HTTP请求。我在线程A里面调用这个
成员函数不现实,想将这个成员函数分派到一个线程里面去跑。有什么优雅的方法么?

比如
class ClassA obj;
obj.fun() //这个fun就是HTTP请求或者其他一些很重的事情要执行几秒。我想把这个放到线程里面去执行。

我自己现在用的方法不好看。比如有个线程池 有一个线程是空闲的。我在类里面定义了一个成员static函数
static int threadFun(ClassA *self)
{
self->fun();
}
这样来执行的。封装性不好 。比如我要执行fun2() 又要单独去写个threadFun2 。很丑 。
有谁有更好的办法吗?

本来想用汇编代码把this指针给ecx然后call。也不靠谱 不同编译器的thiscall的调用约定也不太一样。在C++层面是否有方法可以做到?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
weixin_42022277
进程/线程/DLL 15,466 成员 49,169 内容