【发布时间】:2016-09-17 09:58:26
【问题描述】:
我有方法列表,需要将它们并行化。 如何在 C# 中做到这一点?我看到有一个Parallel命名空间?如何使用?
method1()
method2()
method3()
method4()
【问题讨论】:
标签: c# multithreading parallel-processing task parallel.foreach
我有方法列表,需要将它们并行化。 如何在 C# 中做到这一点?我看到有一个Parallel命名空间?如何使用?
method1()
method2()
method3()
method4()
【问题讨论】:
标签: c# multithreading parallel-processing task parallel.foreach
Parallel.Invoke(
() => method1(),
() => method2(),
() => method3(),
() => method4()
)
添加命名空间System.Threading.Tasks
【讨论】:
Parallel.Invoke 将等待所有方法完成。如果您需要运行它们并继续使用Task.Run(() => method1())
您可以创建Action 委托列表,其中每个委托都是对给定方法的调用:
List<Action> actions = new List<Action>
{
method1,
method2,
method3
};
然后使用Parallel.ForEach并行调用它们:
Parallel.ForEach(actions, action => action());
【讨论】: