C语言中task的用法,c – 在std :: packaged_task中使用成员函数

我想做的应该很容易,但我不明白……

我想要做的就是在后台启动一个类的成员函数

在某个特定的时间点.该功能的结果也应该是“外部”可用的.所以我想在构造函数中准备任务(设置future变量,…)并在稍后的某个时间启动它.

我试图结合std ::(packaged_task | async | future),但我没有让它工作.

这段代码不会编译,但我认为它显示了我想要做的事情:

class foo {

private:

// This function shall run in background as a thread

// when it gets triggered to start at some certain point

bool do_something() { return true; }

std::packaged_task task;

std::future result;

public:

foo() :

task(do_something), // yes, that's wrong, but how to do it right?

result(task.get_future())

{

// do some initialization stuff

.....

}

~foo() {}

void start() {

// Start Task as asynchron thread

std::async as(std::launch::async, task); // Also doesn't work...

}

// This function should return the result of do_something

bool get_result() { return result.get(); }

};

提前致谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值