如何从线程返回值而不使用未来标头
How can I return a value from a thread without using the future header?
我目前的编译器不支持未来头,我无法更新它,因为在Android上,编译器被包装在一个应用程序中。正因为如此,我决定尝试让我自己简单的未来类。我有它的大部分布局,但不能弄清楚如何从线程获得返回值(因为这似乎超出了它的预期用途)。我可以传递给我未来的类一个函子,它包含了它自己的返回holder变量,稍后会被检索到,但这有点限制,因为我想传递给它的任何东西都必须从原始的函子类中派生出来,而不仅仅是一个函数。
有办法做到这一点吗?我假设标准的未来标题不会使用黑魔法。它是否使用"不同版本"的线程来允许它接收回值?
(它不是那么老,不兼容线程,它只是有问题与未来的头由于某种原因)
谢谢
我认为通过编写自己的简单Future类,您就走上了正确的道路。你的代码是什么样的?
我不确定我是否完全理解了你的话:
我可以传递给我未来的类一个函子,其中包含它自己的返回holder变量,以便稍后检索,但这有点限制,因为我想传递给它的任何东西都必须从原始的函子类派生,而不仅仅是一个函数。
我不会传递一个函子,而只存储我想要的值作为线程返回值的变量。如果你想要不同的返回值,你可以从你的SimpleFuture类派生类。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 异常属于C++中的线程还是进程
- C++中的线程安全删除
- C++使用params创建线程函数会导致转换错误
- 类与私有变量的其他类之间的线程安全性
- 使用 std::string () const 函数启动线程或未来
- 为什么C++线程/未来开销如此之大
- 线程池的计时测试:单线程 vs 回调 tp vs 未来 tp
- 如何设置未来的添加到队列从另一个线程在Cython的结果
- 为什么我的线程调用函数对象而不是将其返回值分配给packaged_task的未来对象
- 使用async结束线程并超出其未来的范围是否安全?
- 如何从线程返回值而不使用未来标头