gpt4 book ai didi

c++ - 如何使用 boost::async_system?

转载 作者:行者123 更新时间:2023-11-28 04:25:35 25 4
gpt4 key购买 nike

我对 boost、多线程和使用库启动应用程序还很陌生。对于我想要的功能,同事推荐我使用 boost::process 库。

但是boost这部分的文档非常少,所以我无法通过文档确定哪个功能最适合我的任务。因此,我开始尝试那里的几个功能,但没有一个具有所有需要的属性。

但是有一个我想不通,如何正确使用。我什至无法编译它,更不用说运行它了。函数是 boost::process::async_system。我无法在互联网上的任何地方找到有关如何使用此功能以及各个组件的含义和作用的分步指南。

有人可以详细解释一下函数的各个参数和模板参数吗?或者提供详细手册的链接?

最佳答案

我喜欢这里的例子:https://theboostcpplibraries.com/boost.thread-futures-and-promises

例如,看看示例 44.16,它们清楚地展示了如何使用异步:

#define BOOST_THREAD_PROVIDES_FUTURE
#include <boost/thread.hpp>
#include <boost/thread/future.hpp>
#include <iostream>

int accumulate()
{
int sum = 0;
for (int i = 0; i < 5; ++i)
sum += i;
return sum;
}

int main()
{
boost::future<int> f = boost::async(accumulate);
std::cout << f.get() << '\n';
}

等待发生在 get 方法处,而不是之前。您也可以使用非等待机制。

关于编译,需要先构建boost。此处详细解释了建筑:https://www.boost.org/doc/libs/1_62_0/more/getting_started/windows.html

该库的大部分工作仅用于标题。对于 asio,构建二进制库(也在链接中解释)是必要的。在您的项目(即 visual studio 项目、xcode 项目或只是一些 make 文件)中,您需要设置 boost 的包含和库 header 才能使用它。上面的链接对此也有帮助。

关于c++ - 如何使用 boost::async_system?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54399154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com