parallel_invoke 函数

执行作为并行和块中的参数而提供的函数对象,直至其完成执行。 每个函数对象可以是 lambda 表达式、函数指针或支持带有签名 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
);

参数

  • _Function1
    第一个要并行执行的函数对象类型。

  • _Function2
    第二个要并行执行的函数对象的类型。

  • _Function3
    第三个要并行执行的函数对象类型。

  • _Function4
    第四个要并行执行的函数对象的类型。

  • _Function5
    第五个要并行执行的函数对象类型。

  • _Function6
    第六个要并行执行的函数对象类型。

  • _Function7
    第七个要并行执行的函数对象的类型。

  • _Function8
    第八个要并行执行的函数对象类型。

  • _Function9
    第九个要并行执行的函数对象类型。

  • _Function10
    第十个要并行执行的函数对象类型。

  • _Func1
    第一个要并行执行的函数对象。

  • _Func2
    第二个要并行执行的函数对象。

  • _Func3
    第三个要并行执行的函数对象。

  • _Func4
    第四个要并行执行的函数对象。

  • _Func5
    第五个要并行执行的函数对象。

  • _Func6
    第六个要并行执行的函数对象。

  • _Func7
    第七个要并行执行的函数对象。

  • _Func8
    第八个要并行执行的函数对象。

  • _Func9
    第九个要并行执行的函数对象。

  • _Func10
    第十个要并行执行的函数对象。

备注

请注意,作为参数提供的一个或多个函数对象可能会在调用上下文上执行内联。

如果将一个或多个函数对象作为参数传递给此函数会引发异常,则运行时将选择其选定的此类异常之一,并将其传播到 parallel_invoke 调用以外的调用。

有关更多信息,请参见 并行算法

要求

**标头:**ppl.h

命名空间: 并发

请参见

参考

concurrency 命名空间