gpt4 book ai didi

C++ 函数在其他函数完成之前完成

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:18:53 27 4
gpt4 key购买 nike

我正在编写一个 C++ 程序以使用 C++ REST SDK 与互联网交互。我有一个主要功能和一个 webCommunication 功能。代码类似于下面:

 void webCommunication(data, url)
{
//Communicate with the internet using the http_client
//Print output
}

int main()
{
//Obtain information from user
webCommunication(ans1, ans2);
system("PAUSE");
}

但是,似乎在 webCommunication 功能完成之前,main 功能正在进行中。如果我将 webCommunication 设为字符串的函数类型并且有

cout << webCommunication(ans1, ans2) << endl;

但这仍然会暂停,然后打印检索到的数据。通常,这会很好,希望我稍后在代码中指的是返回的答案。如果 webCommunication 没有完成,应用程序就会崩溃。我可以使用某种 wait_until 函数吗?

更新:我曾尝试使用建议的互斥体,但没有成功。我还尝试将函数作为线程启动,然后使用 .join() 仍然没有成功。

最佳答案

如果您将 webCommunications() 函数声明为

pplx::task<void> webCommunications()
{
}

那么调用函数的时候就可以使用“.wait()”了。然后它将等待直到函数执行以继续。看起来像这样:

pplx::task<void> webCommunications()
{
}

int main()
{
webCommunications().wait();
//Do other stuff
}

关于C++ 函数在其他函数完成之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29435229/

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