【发布时间】:2017-11-27 14:53:01
【问题描述】:
在英特尔 TBB 中,我正在尝试: 1.创建一组任务 2.让他们跑 3.当其中一个完成时,我从中得到一些结果并杀死其他人。
我该怎么做?我可以看到只有 API 等待所有而不仅仅是单个...
谢谢。
【问题讨论】:
在英特尔 TBB 中,我正在尝试: 1.创建一组任务 2.让他们跑 3.当其中一个完成时,我从中得到一些结果并杀死其他人。
我该怎么做?我可以看到只有 API 等待所有而不仅仅是单个...
谢谢。
【问题讨论】:
完成的任务可以将其结果存储在一个已知的地方,并用task::self().cancel_group_execution() 取消组。然后wait_for_all() 将被解除阻塞,并且该线程可以从已知位置加载结果。
https://www.threadingbuildingblocks.org/docs/help/tbb_userguide/Cancellation_Without_An_Exception.html 显示如何使用cancel_group_execution()。
【讨论】: