我有一些目前看起来像这样的代码:
private void GetBatchJobList() //gets the list of JOBS
{
var queuedJobList = manager.GetAllBatchJobs();
foreach (var job in queuedJobList)
{
ExecuteJob(job.JobName, job.InputList); //for each JOB this method is called
}
}
private void ExecuteJob(string jobName, string parameter)
{
switch (jobName)
{
case "JobName1":
OrderJob.JobName1(Convert.ToInt32(parameter));
break;
case "JobName2":
OrderJob.JobName2(Convert.ToDateTime(parameter));
break;
}
}
因为你可以看到方法一个接一个地执行。我想并行运行这些方法。 这些功能的实际名称是不同的。 ExecuteJob执行与IO相关的工作。
如何更改我的代码,以便函数调用并行执行,具体取决于条件(JobName == JobName1)。
希望这能解释它。我只是个初学者。 提前谢谢。
答案 0 :(得分:3)
您可以使用Parallel.ForEach
Parallel.ForEach(manager.GetAllBatchJobs(), job => ExecuteJob(job.JobName, job.InputList))
并行运行取决于系统环境。通常你拥有的cpu越多,运行得越快。但是不要认为Parallel 总是更快。例如。如果作业快速执行且作业很少,那么顺序执行可能会更快。