parallel_invoke Function

Executes the function objects supplied as parameters in parallel, and blocks until they have finished executing. Each function object could be a lambda expression, a pointer to function, or any object that supports the function call operator with the signature void operator()().

template <
   typename _Function1,
   typename _Function2
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5,
   typename _Function6
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5,
   const _Function6& _Func6
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5,
   typename _Function6,
   typename _Function7
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5,
   const _Function6& _Func6,
   const _Function7& _Func7
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5,
   typename _Function6,
   typename _Function7,
   typename _Function8
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5,
   const _Function6& _Func6,
   const _Function7& _Func7,
   const _Function8& _Func8
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5,
   typename _Function6,
   typename _Function7,
   typename _Function8,
   typename _Function9
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5,
   const _Function6& _Func6,
   const _Function7& _Func7,
   const _Function8& _Func8,
   const _Function9& _Func9
);
template <
   typename _Function1,
   typename _Function2,
   typename _Function3,
   typename _Function4,
   typename _Function5,
   typename _Function6,
   typename _Function7,
   typename _Function8,
   typename _Function9,
   typename _Function10
>
void parallel_invoke(
   const _Function1& _Func1,
   const _Function2& _Func2,
   const _Function3& _Func3,
   const _Function4& _Func4,
   const _Function5& _Func5,
   const _Function6& _Func6,
   const _Function7& _Func7,
   const _Function8& _Func8,
   const _Function9& _Func9,
   const _Function10& _Func10
);

Parameters

  • _Function1
    The type of the first function object to be executed in parallel.

  • _Function2
    The type of the second function object to be executed in parallel.

  • _Function3
    The type of the third function object to be executed in parallel.

  • _Function4
    The type of the fourth function object to be executed in parallel.

  • _Function5
    The type of the fifth function object to be executed in parallel.

  • _Function6
    The type of the sixth function object to be executed in parallel.

  • _Function7
    The type of the seventh function object to be executed in parallel.

  • _Function8
    The type of the eighth function object to be executed in parallel.

  • _Function9
    The type of the ninth function object to be executed in parallel.

  • _Function10
    The type of the tenth function object to be executed in parallel.

  • _Func1
    The first function object to be executed in parallel.

  • _Func2
    The second function object to be executed in parallel.

  • _Func3
    The third function object to be executed in parallel.

  • _Func4
    The fourth function object to be executed in parallel.

  • _Func5
    The fifth function object to be executed in parallel.

  • _Func6
    The sixth function object to be executed in parallel.

  • _Func7
    The seventh function object to be executed in parallel.

  • _Func8
    The eighth function object to be executed in parallel.

  • _Func9
    The ninth function object to be executed in parallel.

  • _Func10
    The tenth function object to be executed in parallel.

Remarks

Note that one or more of the function objects supplied as parameters may execute inline on the calling context.

If one or more of the function objects passed as parameters to this function throws an exception, the runtime will select one such exception of its choosing and propagate it out of the call to parallel_invoke.

For more information, see Parallel Algorithms.

Requirements

Header: ppl.h

Namespace: Concurrency

See Also

Reference

Concurrency Namespace