[C#] 외부 프로세스 실행하고 대기하기

콘솔 프로그램은 개발의 간편성과 그 기능과 책임이 명확함으로 단위 기능을 제공하는, 마치 API와 같은 역할을 제공한다고 할 수 있습니다. 이러한 콘솔 프로그램의 진정한 가치의 발휘는 여러 개의 콘솔 프로그램이 조합되어 실행되고 그 결과들이 모여 또 다른 하나의 결과로 취합 또는 새롭게 생성되는 것인데요. 이러한 콘솔 프로그램을 실행하고 실행된 프로그램이 종료될때까지 기다리는 C# 함수에 대한 소개입니다.

using System.Diagnostics;

private int RunProcess(String FileName, String Args)
{
    Process p = new Process();

    p.StartInfo.FileName = FileName;
    p.StartInfo.Arguments = Args;

    p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

    p.Start();
    p.WaitForExit();

    return p.ExitCode;
}

위의 RunProcess 함수는 2개의 인자를 받습니다. FileName 인자는 프로그램에 대한 실행 파일 경로이고 Args는 실행 파일이 받는 Command Line 단의 인자에 대한 문자열입니다. 이 함수는 실행되는 프로그램이 반환하는 값을 다시 반환하고 있으므로 이 반환값을 이용해 해당 프로그램의 성공 여부를 판단할 수 있습니다.

사실 RunProcess 함수는 .NET에서 Process라는 클래스의 사용을 좀더 편리하고 쉽게 사용할 수 있도록 한 것입니다. Process 클래스는 프로세스에서 출력하는 내용에 대한 처리라든지, 실행 및 종료 처리는 물론, 종료시 또는 에러발생시에 대한 이벤트 처리 등에 대한 다양한 기능을 제공하므로 더욱 고급진 프로세스의 처리가 가능합니다.

“[C#] 외부 프로세스 실행하고 대기하기”에 대한 2개의 댓글

    1. 만약에.. Command 창에서 dir /w 를 입력해서 실행할적에..
      아래처럼 되겠네요~

      RunProcess(“dir”, “/w”)

      확인해 본건 아니니 안될 수 있으나 대략 비슷합니다요다는 제다이~~

김 형준에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다