私はcalculate_the_answer_to_LtUaEを(呼び出すためにthe_answer.get()を呼び出す必要がhttp://www.justsoftwaresolutions.co.uk/threading/multithreading-in-c++0x-part-8-futures-and-promises.html非同期関数呼び出しC++ 0xの
int calculate_the_answer_to_LtUaE(){
sleep(5);
cout << "Aaa" << endl;
}
std::future<int> the_answer=std::async(calculate_the_answer_to_LtUaE);
the_answer.get();
cout << "finish calling" << endl;
sleep(10000);
からのコードではstd ::非同期関数にテストしてい)とgetのAaa画面に印刷されます。私がthe_answer.get()行をコメントアウトしても、何も印刷されません。これはstd :: async関数の意図された動作ですか、私はここで何か間違っていますか?これは、関数が完了して結果を取得するのを待つためにthe_answer.get()が使用されていると考えたからです。
ありがとうございました。
。今、 'calculate_the_answer_to_LtUaE'の最後に' return'がないので、すべてが壊れてしまいます。 – Omnifarious