2014-12-16 2 views
-3

순서대로 실행해야하는 C# 프로그램이 3 개 있습니다 (TestCSharp1, TestCSharp2 및 TestCSharp3) .2nd 프로그램은 처음 완료된 후에 만 ​​실행되어야하고 3은 1 및 2 완료 후에 만 ​​실행되어야합니다 . 어떻게해야합니까? 지금은 예약 된 작업으로 처리했으며 수동으로 완료했는지 확인한 다음 다른 작업을 시작합니다.다른 C# 프로그램에서 C# 프로그램 호출

+0

왜 하나의 프로그램을 만들지 않습니까? – Alexander

+0

@Alexander, 각 프로그램에서 이러한 순서로 발생해야하는 계산이 있습니다. – newbieCSharp

+0

특정 순서로 계산하는 것은 정확히 하나의 프로그램에서 수행하는 것입니다. 하나의 프로그램이지, 많지는 않습니다. 많은 프로그램들이 모든 가능한 순서로 동시에 또는 한 번에 하나씩 실행될 수도 있고 전혀 명령되지 않을 수도 있습니다. – Alexander

답변

3

사용 Proccess 클래스 (Documentation)은 프로그램 내부에서 프로세스를 시작합니다. 다음은 설명서의 예입니다.

using System; 
using System.Diagnostics; 
using System.ComponentModel; 

namespace MyProcessSample 
{ 
    class MyProcess 
    { 
     public static void Main() 
     { 
      Process myProcess = new Process(); 

      try 
      { 
       myProcess.StartInfo.UseShellExecute = false; 
       // You can start any process, HelloWorld is a do-nothing example. 
       myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"; 
       myProcess.StartInfo.CreateNoWindow = true; 
       myProcess.Start(); 
       myProcess.WaitForExit(); //use this if you want to pause execution of your program till the process you have started closes. 
       // This code assumes the process you are starting will terminate itself. 
       // Given that is is started without a window so you cannot terminate it 
       // on the desktop, it must terminate itself or you can do it programmatically 
       // from this application using the Kill method. 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.Message); 
      } 
     } 
    } 
} 
+1

OP가 다른 프로세스를 먼저 완료하기를 원한다면'Process.WaitForExit()'에 주목할 수 있습니다. –

+0

아 좋은 지적입니다. 예제에 추가하겠다. – pquest

2

명령 줄 프로그램을 실행 중이라고 가정하면 배치 파일에 세 개의 실행 파일이 포함 된 배치 파일을 만들고 예약 된 작업으로 배치 파일을 실행할 수 있습니다. 의견에서 볼 수 있듯이 Windows 프로그램이있는 경우이 방법은 작동하지 않습니다.

예.

@echo off 
cd \ToTheRightPlace 
TestCSharp1 
TestCSharp2 
TestCSharp3 

당신은 반환 값을 검사 할 것 등

+0

올바르지 않습니다. 배치 파일은 동시에 모든 것을 실행합니다. 이것은 포스터가 원하는 것이 아닙니다. 올바른 접근 방법은 System.Diagnostics 네임 스페이스의 Process 및 ProcessStartInfo 클래스를 사용하는 것입니다. –

+3

dos 배치 파일은 한 번에 하나의 명령을 실행합니다. – AlG

+1

때로는 항상 그런 것은 아닙니다. 프로그램 자체에 달려있다. 예를 들어 배치 파일에 3 개의 notepad.exe 프로세스가있는 경우,이 프로세스는 모두 동시에 또는 심지어 winword에서 실행됩니다. 적어도 그것은 내 시스템에서한다. –

관련 문제