如何在parallel.invoke中动态添加方法
本文关键字:动态 添加 方法 invoke parallel | 更新日期: 2023-09-27 17:58:33
下面给出的是示例代码。
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循环。但是,该方法只运行了一次。请帮忙。提前感谢:)
Parallel.Execute
可能并行执行所提供的每个操作。在这种情况下,您只有一个操作,因此它只执行一次。
如果您正在寻找对每个str
的并行调用,请使用此方法。
Parallel.ForEach(str, (temp) =>
{
MainFunc(temp);
}
您对Parallel.Invoke的用法不正确。此方法接受一个或多个Action
,并在Parralell中执行它们。您只发送一个Action,所以10次迭代一个接一个地执行。但是,MainFunc
应该运行10次(基于字符串数组的长度。
要并行执行上述逻辑,请使用Parallel.ForEach()
:
Parallel.ForEach(str, (temp) => MainFunc(temp));