Поделиться через


Функция parallel_for

parallel_for выполняет итерацию по диапазону индексов и выполняет предоставленный пользователем функцию в каждой итерации параллельно.

template <
   typename _Index_type,
   typename _Function,
   typename _Partitioner
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   _Index_type_Step,
   const _Function& _Func,
   _Partitioner&& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   _Index_type_Step,
   const _Function& _Func
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const auto_partitioner& _Part = auto_partitioner()
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const static_partitioner& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   const simple_partitioner& _Part
);

template <
   typename _Index_type,
   typename _Function
>
void parallel_for(
   _Index_type_First,
   _Index_type_Last,
   const _Function& _Func,
   affinity_partitioner& _Part
);

Параметры

  • _Index_type
    Тип индекса, используемого для итерации.

  • _Function
    Тип функции, которая будет выполняться при каждой итерации.

  • _Partitioner
    Тип модуль разделения, который используется для разделения предоставленный диапазон.

  • _First
    Первый индекс для включения в итерации.

  • _Last
    Индекс на один после последнего индекса для включения в итерации.

  • _Step
    Значение шага при переборе от _First до _Last.Этап должно быть положительным.invalid_argument выбрасывается, если шаг меньше, чем 1.

  • _Func
    Функция, выполняемая в каждой итерации.Это может быть лямбда-выражение, указатель функции или другой объект, который поддерживает версию оператора вызова функции с сигнатурой void operator()(_Index_type**)**.

  • _Part
    Ссылка на объект модуля разделения.Аргумент может принимать одно из constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& или affinity_partitioner&, если объект affinity_partitioner используется, то ссылка должен быть ссылкой l-значением, не являющимся константными, чтобы алгоритм мог хранить состояние для последующих циклов для повторного использования.

Заметки

Дополнительные сведения см. в разделе Параллельные алгоритмы.

Требования

Заголовок: ppl.h

Параллелизм пространство имен:

См. также

Ссылки

Пространство имен concurrency