Представьте, что у меня есть lamba foo
, которая просто выполняет кое-какие действия и не должна ничего возвращать.
Когда я сделаю это:
std::future<T> handle = std::async(std::launch::async, foo, arg1, arg2);
Все работает нормально, и ламба будет создана в новом потоке.
Однако, когда я не сохраняю std :: future
, который возвращает std :: async
, foo будет запущен в основном потоке и заблокирован.
std::async(std::launch::async, foo, arg1, arg2);
Что мне здесь не хватает?