如何引用通过 tbb::parallel_for 循环传入的 tbb::task_group_context 实例

问题描述 投票:0回答:1
tbb::task_group_context tg;
SomeClass someObject;

tbb:: parallel_for(tbb::blocked_range<size_t>(0, num, grainSize), 
                   someObject,
                   tbb::simple_partitioner(),
                   tg);
class SomeClass
{
void operator()(const tbb::blocked_range<size_t>& r)  const
{

   tg.cancel_group_execution();
   //how do i refer to object tg ?
}

我收到以下构建错误:

"tg" not declared in this scope
。 如何使用传入的
tg
变量?

c++ tbb
1个回答
0
投票

oneTBB 支持异常和取消,这意味着您只需从

SomeClass::operator()
抛出异常,取消就会自动... 您也可以通过拨打 tbb::current_context()->cancel_group_execution()
毫无例外地取消

© www.soinside.com 2019 - 2024. All rights reserved.