1

在 D 世界中是否存在来自 C++ 世界的未来/承诺等价物?

当然有std.parallelism,但它不完全具有promise/future组合的功能(没有等同于获取future或设置结果或异常,您也不能等待完成)。

4

1 回答 1

2

我相信你没有认真看std.parallelism......相当于“获得未来”(如果你的意思是std::future'get()方法)是yieldForce(),spinForce()和workForce()。仔细阅读这些内容,您会发现您也可以等待完成...

std::future::get()等到未来有一个有效的结果并(取决于使用哪个模板)检索它。这正是 yieldForce 所做的。

关于异常...您在哪里看到您无法获得异常?从std.parallelism页面:如果任务尚未启动,请在当前线程中执行它。如果完成,则返回其返回值(如果有)。如果它正在进行中,请等待条件变量。如果它抛出异常,则重新抛出该异常

std.parallelism “遭受”不试图复制 C++ 和/或 Java 并且来自这些社区的人总是期望事情像他们习惯的那样表现(去过那里,做过那个)。

有人纠正我,但 std.parallelism 早于 std::future 和 std::promise,对吗?

于 2013-10-04T22:37:38.473 回答