У меня есть одна задача, которая может быть гибкой, если она работает.Странное поведение в std :: async
Так я tryng это:
#include <iostream>
#include <future>
using namespace std;
int main()
{
auto handle = std::async(std::launch::deferred,[]
{
cout<<"Initializing thread..."<<endl;
this_thread::sleep_for(std::chrono::seconds(5));
}
);
cout<<"Starting..."<<endl;
handle.wait_for(std::chrono::seconds(2));
cout<<"Finished correctly"<<endl;
return 0;
}
вывод:
... Начало
Закончены правильно
Почему не печатают «Инициализация нити ... "? Я попытался обменять оба chronos и не работает в любом случае
Дело в том, что если я создаю поток, я не смогу его убить – amchacon
Важно то, что вы не можете создать поток с 'std :: async'. Вы не контролируете это. – sehe
Хорошо, я проверил это: http://en.cppreference.com/w/cpp/thread/future_status – amchacon