代码之家  ›  专栏  ›  技术社区  ›  paduraru2009

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

  •  0
  • paduraru2009  · 技术社区  · 6 年前

    在英特尔TBB中,我试图: 1、创建一组任务 2、让他们跑 当他们中的一个结束时,我从中得到了一些结果并杀死了其他人。

    我该怎么做?我可以看到只有API等待所有,而不仅仅是单个。。。

    谢谢

    1 回复  |  直到 6 年前
        1
  •  4
  •   Arch D. Robison    6 年前

    完成的任务可以将其结果存储在已知位置,并使用 task::self().cancel_group_execution() . 这个 wait_for_all() 然后将被解锁,该线程可以从已知位置加载结果。
    https://www.threadingbuildingblocks.org/docs/help/tbb_userguide/Cancellation_Without_An_Exception.html 演示如何使用 cancel_group_execution() .