我想做的事情應該很容易,但我不明白...在std :: packaged_task中使用成員函數
我想要做的就是啓動一個類的成員函數背景 在某個特定的時間點。該功能的結果也應該是「外部」可用的。所以我想在構造函數中準備任務(設置未來變量,...)並在稍後的時間點啓動它。
我試圖將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<bool()> task;
std::future<bool> 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(); }
};
提前感謝!
'std :: async'是一個函數,而不是一個類型 –