如何在.net中完成三个进程后执行一个方法

时间:2015-11-28 12:12:31

标签: c# .net process

我通过使用Process.start并传递不同的参数来运行三个相同的进程。我需要一个逻辑方式,就像只有在完成这些进程后我必须执行最后两个名为fourthmethod();sendmail();的方法。如何做现有的逻辑是一直抛出这两种方法,但我只需要完成三个过程即三个方法firstmethod();secondmethod();thirdmethod(); 此代码显示触发三个不同的过程

 // three same test.exe process
    for(int i=0;i<3;i++)
    {
    Process.Start("test.exe",i);
    }

在test.exe主要方法

Main(strin[] args)
{
if(args[0]==0)
{
firstmethod();
}
if(args[0]==1)
{
secondmethod();
}
if(args[0]==2)
{
thirdmethod();
}
fourthmethod();
sendmail();
}

2 个答案:

答案 0 :(得分:1)

  

一种方法:)

     

更新代码:

http_response_code(404);
http_response_code(200);
http_response_code(500);
  

更新了代码Test.exe

 // three same test.exe process
    for(int i=0;i<4;i++)   // the two method should execute only after 3 processes
    {
    Process.Start("test.exe",i);
    }

答案 1 :(得分:1)

using System;
using System.Diagnostics;

class Program
{
  static int count = 0;
  static object obj = new object();
  static void Main(string[] args)
  {
    Process[] Processes = new Process[3];
    for (int i = 0; i < 3; i++)
    {
        Processes[i] = Process.Start("notepad.exe");
        Processes[i].EnableRaisingEvents = true;
        Processes[i].Exited += Program_Exited;
    }
    Console.ReadLine();
  }

  private static void Program_Exited(object sender, System.EventArgs e)
  {
    lock (obj)
    {
        count++;
    }
    if (count == 3)
        Console.WriteLine("Finised");
  }
}