在退出主线程之前等待异步文件写入完成

Wait for async file write to finish before exiting main thread

使用 experimental/filesystem 和 std::async 有没有办法确保文件写入在退出主线程之前完成?

用于调用异步函数的代码

    std::vector<std::future<void>> img_Futures;
    for (int i = 0; i < parsedResult.size(); i++)
    {

        img_Futures.push_back(std::async(std::launch::async, downloadImage, parsedResult[i], baseFolderPath, i));
        

    }

最终发生的事情是它写入了大部分文件,但是有些文件留在了 0 字节处,因为(我认为)主线程在它们有时间写入它们之前就退出了。

您可以对每个期货调用 std::future::wait()。这将阻塞直到未来的结果可用,即直到你的 downloadImage() 函数完成。