如何在任务组中等待Intel TBB中的单个任务并杀死其他任务?

pad*_*009 0 c++ intel tbb task wait

在英特尔 TBB 中,我尝试: 1. 创建一组任务 2. 让它们运行 3. 当其中一个任务完成时,我从中得到一些结果并杀死其他任务。

我怎样才能做到这一点 ?我只能看到 API 等待所有而不仅仅是单个......

谢谢。

Arc*_*son 5

完成的任务可以将其结果存储在已知位置并使用 取消分组task::self().cancel_group_execution()。然后,该wait_for_all()线程将被解除阻塞,并且该线程可以从已知位置加载结果。
https://www.threadingbuildingblocks.org/docs/help/tbb_userguide/Cancellation_Without_An_Exception.html显示了如何使用cancel_group_execution().