C# 如何在parallel.invoke中动态添加方法

C# 如何在parallel.invoke中动态添加方法,c#,parallel.invoke,C#,Parallel.invoke,下面给出的是示例代码 string[] str = new string[10]; str[0] = "A"; str[1] = "B"; .... and so on. Parallel.Invoke(() => { foreach(string temp in str) {

下面给出的是示例代码

            string[] str = new string[10];
            str[0] = "A";
            str[1] = "B";
            .... and so on.

            Parallel.Invoke(() =>
            {
                foreach(string temp in str)
                {
                MainFunc(temp);
                }

            });

我想动态调用“MainFunc”方法10次。因此,我将foreach循环用于。但是,该方法只运行一次。请帮忙。提前感谢:)

您对并行的用法。调用不正确。此方法接受一个或多个
操作
s并并行执行它们。您只发送一个操作,因此10次迭代将一次接一次地执行。但是,
MainFunc
应该运行10次(基于字符串数组的长度)

要并行执行上述逻辑,请使用
Parallel.ForEach()

执行提供的每个操作,可能是并行的。在这种情况下,您只有一个操作,因此它只执行一次

如果您正在寻找对每个
str
的并行调用,请使用此选项

 Parallel.ForEach(str, (temp) => 
 {
       MainFunc(temp);
 }

使用
Parallel.ForEach()
。谢谢你,伙计。它成功了。:)
 Parallel.ForEach(str, (temp) => 
 {
       MainFunc(temp);
 }