如何从线程返回值而不使用未来标头

How can I return a value from a thread without using the future header?

本文关键字:未来 线程 返回值      更新时间:2023-10-16

我目前的编译器不支持未来头,我无法更新它,因为在Android上,编译器被包装在一个应用程序中。正因为如此,我决定尝试让我自己简单的未来类。我有它的大部分布局,但不能弄清楚如何从线程获得返回值(因为这似乎超出了它的预期用途)。我可以传递给我未来的类一个函子,它包含了它自己的返回holder变量,稍后会被检索到,但这有点限制,因为我想传递给它的任何东西都必须从原始的函子类中派生出来,而不仅仅是一个函数。

有办法做到这一点吗?我假设标准的未来标题不会使用黑魔法。它是否使用"不同版本"的线程来允许它接收回值?

(它不是那么老,不兼容线程,它只是有问题与未来的头由于某种原因)

谢谢

我认为通过编写自己的简单Future类,您就走上了正确的道路。你的代码是什么样的?

我不确定我是否完全理解了你的话:

我可以传递给我未来的类一个函子,其中包含它自己的返回holder变量,以便稍后检索,但这有点限制,因为我想传递给它的任何东西都必须从原始的函子类派生,而不仅仅是一个函数。

我不会传递一个函子,而只存储我想要的值作为线程返回值的变量。如果你想要不同的返回值,你可以从你的SimpleFuture类派生类。