为了并行执行多个任务,可以启动多个进程(并行数)。
下面提供两种方法,总任务数10,最大并行数4。
一、方法1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using System.Threading; namespace 进程并行 { public class StartProcess1 { int totalProcess = 10;//总任务数 int maxParallelProcess = 4;//并行最大进程数 int curRunningProcess = 0;//当前运行进程数 public void Do() { DoEvents(); } /// <summary> /// 执行进程 /// </summary> private void DoEvents() { for (int i = 0; i < totalProcess; i++) { ProcessStartInfo processInfo = new ProcessStartInfo(); processInfo.FileName = @"C:\进程.exe"; processInfo.Arguments = (i + 1).ToString(); Process pro = new Process(); pro.EnableRaisingEvents = true; pro.StartInfo = processInfo; pro.Exited += new EventHandler(process_Exited); pro.Start(); //pro.WaitForExit(18000); curRunningProcess++; //如果大于最大并行数,就等待进程退出,是并行数不超过最大并行数 while (curRunningProcess >= maxParallelProcess) { if (i >= totalProcess -