如何在不使用未来标头的情况下从线程返回值?

时间:2014-03-20 18:05:06

标签: c++ multithreading

我当前的编译器不支持将来的标头,而且我无法在Android上更新它,编译器包含在应用程序中。因此,我决定尝试创建自己简单的未来课程。 我已经完成了大部分内容,但无法弄清楚如何从线程中获取返回值(因为这似乎超出了其预期用途)。 我可以将我未来的类传递给一个包含它自己的返回持有者变量的仿函数,以便稍后检索,但这有点限制,因为我想传递它的任何内容都必须来自原始的仿函数类,而不仅仅是一个功能。

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

(它不是那么老,不能与线程兼容,因为某些原因,它只是出现了未来标题的问题)

由于

1 个答案:

答案 0 :(得分:0)

我认为通过编写自己简单的Future类,你就是正确的方法。 你的代码是什么样的?

我不确定我是否完全理解你的陈述:

  

我可以将我未来的类传递给包含它自己的返回持有者变量的仿函数,以便稍后检索,但这有点限制,因为我想传递它的任何内容都必须来自原始的仿函数类,而不仅仅是一个功能。

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