gpt4 book ai didi

c++ - std::promise 通知多个客户端

转载 作者:行者123 更新时间:2023-11-30 02:57:45 24 4
gpt4 key购买 nike

我有一个 API 必须向客户端返回 future 结果 (future/shared_future)。在某些情况下,我知道我可以多次返回“同一个 future ”对象,因为我有一个关联的 std::promise 可以/应该将结果传递给多个客户端(伪代码)。

std::future<int> getVal()
{
//I have a list of promises kept
if (promiseExists)
{
//this throws an exception because get_future() can be called only one time, unfortunately
return existingPromise.get_future();
}
....
}

问题是你不能在同一个实例上多次调用 get_future() ,或者以某种方式从同一个 promise 中获得一个 shared_future 对象。

getVal 有一个返回 shared_future 的解决方法(从现有的 Promise.get_future() 构造 shared_future 获得)但在这种情况下,我必须将 shared_future 对象与 promise 对象缓存起来,并且只有一个 promise 会更简单以某种方式能够将 future 多次返回给不同客户的对象。有办法做到这一点吗?

最佳答案

没有。

为什么你需要信守 promise ?只有结果的提供者需要 promise ,结果的所有消费者只需要(共享的) future 。

关于c++ - std::promise 通知多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219763/

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