Process.WaitForExit 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
연결된 프로세스가 종료될 때까지 대기할 기간을 설정하고 시간이 경과하거나 프로세스가 종료될 때까지 현재 실행 스레드를 차단합니다. 현재 스레드를 차단하지 않도록 하려면 이벤트를 사용합니다 Exited .
코드 예제는 속성 참조 페이지와 ExitCode 속성을 참조 StandardError 하세요.
오버로드
| Name | Description |
|---|---|
| WaitForExit() |
Process 연결된 프로세스가 종료될 때까지 무기한 대기하도록 구성 요소에 지시합니다. |
| WaitForExit(Int32) |
Process 연결된 프로세스가 종료될 때까지 지정된 시간(밀리초)을 기다리도록 구성 요소에 지시합니다. |
| WaitForExit(TimeSpan) |
프로세스 구성 요소에 연결된 프로세스가 종료될 때까지 지정된 시간을 기다리도록 지시합니다. |
WaitForExit()
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Process 연결된 프로세스가 종료될 때까지 무기한 대기하도록 구성 요소에 지시합니다.
public:
void WaitForExit();
public void WaitForExit();
member this.WaitForExit : unit -> unit
Public Sub WaitForExit ()
예외
대기 설정에 액세스할 수 없습니다.
프로세스가 Id 설정되지 않았으며 Handle 속성을 확인할 수 있는 Id 프로세스가 없습니다.
-또는-
이 Process 개체와 연결된 프로세스가 없습니다.
-또는-
원격 컴퓨터에서 실행 중인 프로세스를 호출 WaitForExit() 하려고 합니다. 이 메서드는 로컬 컴퓨터에서 실행 중인 프로세스에만 사용할 수 있습니다.
예제
속성 참조 페이지의 설명 섹션을 StandardError 참조하세요.
설명
WaitForExit() 는 연결된 프로세스가 종료될 때까지 현재 스레드를 대기합니다. 프로세스에서 다른 모든 메서드를 호출한 후에 호출해야 합니다. 현재 스레드를 차단하지 않도록 하려면 이벤트를 사용합니다 Exited .
이 메서드는 Process 프로세스 및 이벤트 처리기가 종료되기까지 무한히 대기하도록 구성 요소에 지시합니다. 이로 인해 애플리케이션의 응답이 중지될 수 있습니다. 예를 들어 사용자 인터페이스가 있는 프로세스를 호출 CloseMainWindow 하는 경우 프로세스가 메시지 루프를 입력하지 않도록 작성된 경우 운영 체제에 연결된 프로세스를 종료하라는 요청이 처리되지 않을 수 있습니다.
메모
.NET Framework 3.5 및 이전 버전 WaitForExit() 에서는 오버로드가 무기한이 아닌 밀리초(약 24일)를 기다렸 MaxValue 습니다. 또한 이전 버전은 전체 MaxValue 시간에 도달한 경우 이벤트 처리기가 종료될 때까지 기다리지 않았습니다.
이 오버로드는 리디렉션된 표준 출력에 대한 비동기 이벤트 처리를 포함하여 모든 처리가 완료되었는지 확인합니다. 표준 출력이 비동기 이벤트 처리기로 리디렉션된 경우 오버로드를 호출 WaitForExit(Int32) 한 후 이 오버로드를 사용해야 합니다.
연결된 프로세스가 종료되면(즉, 정상 또는 비정상적인 종료를 통해 운영 시스템에 의해 종료되는 경우) 시스템은 프로세스에 대한 관리 정보를 저장하고 호출 WaitForExit()한 구성 요소로 돌아갑니다. Process 그런 다음, 종료된 프로세스를 사용하여 Handle 구성 요소가 포함된 ExitTime정보에 액세스할 수 있습니다.
연결된 프로세스가 종료되었 Handle 으므로 구성 요소의 속성이 더 이상 기존 프로세스 리소스를 가리키지 않습니다. 대신 핸들은 프로세스 리소스에 대한 운영 체제의 정보에 액세스하는 데만 사용할 수 있습니다. 시스템은 구성 요소에서 릴리스되지 않은 종료된 프로세스에 Process 대한 핸들을 인식하므로 구성 요소가 특히 리소스를 해제할 때까지 Process 메모리에 해당 및 Handle 정보를 유지 ExitTime 합니다. 이러한 이유로 인스턴스를 호출 Start 할 때마다 연결된 프로세스가 종료되고 해당 프로세스에 대한 Process 관리 정보가 더 이상 필요하지 않을 때 호출 Close 합니다. Close 는 종료된 프로세스에 할당된 메모리를 해제합니다.
추가 정보
적용 대상
WaitForExit(Int32)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
Process 연결된 프로세스가 종료될 때까지 지정된 시간(밀리초)을 기다리도록 구성 요소에 지시합니다.
public:
bool WaitForExit(int milliseconds);
public bool WaitForExit(int milliseconds);
member this.WaitForExit : int -> bool
Public Function WaitForExit (milliseconds As Integer) As Boolean
매개 변수
- milliseconds
- Int32
연결된 프로세스가 종료될 때까지 대기하는 시간(밀리초)입니다. 값 0은 즉시 반환을 지정하고 -1 값은 무한 대기를 지정합니다.
반환
true연결된 프로세스가 종료되었으면 이고, 그렇지 않으면 . false
예외
대기 설정에 액세스할 수 없습니다.
프로세스가 Id 설정되지 않았으며 Handle 속성을 확인할 수 있는 Id 프로세스가 없습니다.
-또는-
이 Process 개체와 연결된 프로세스가 없습니다.
-또는-
원격 컴퓨터에서 실행 중인 프로세스를 호출 WaitForExit(Int32) 하려고 합니다. 이 메서드는 로컬 컴퓨터에서 실행 중인 프로세스에만 사용할 수 있습니다.
milliseconds 는 무한 제한 시간을 나타내는 -1 이외의 음수입니다.
예제
속성에 대한 코드 예제를 참조하세요 ExitCode .
설명
WaitForExit(Int32) 는 연결된 프로세스가 종료될 때까지 현재 스레드를 대기합니다. 프로세스에서 다른 모든 메서드를 호출한 후에 호출해야 합니다. 현재 스레드를 차단하지 않도록 하려면 이벤트를 사용합니다 Exited .
이 메서드는 Process 프로세스가 종료되기까지 한정된 시간을 기다리도록 구성 요소에 지시합니다. 종료 요청이 거부 false 되어 연결된 프로세스가 간격이 끝날 때까지 종료되지 않으면 호출 프로시저로 반환됩니다. 에 대해 milliseconds지정할 Timeout.Infinite 수 있으며 오버로드와 Process.WaitForExit(Int32) 동일하게 WaitForExit() 동작합니다. 메서드에 0을 전달하면 프로세스가 이미 종료된 경우에만 반환 true 되고, 그렇지 않으면 즉시 반환됩니다 false.
메모
.NET Framework 3.5 및 이전 버전에서 -1 WaitForExit(Int32) 인 경우 milliseconds 오버로드는 무기한이 아닌 밀리초(약 24일)를 기다렸 MaxValue 습니다.
표준 출력이 비동기 이벤트 처리기로 리디렉션된 경우 이 메서드가 반환될 때 출력 처리가 완료되지 않을 수 있습니다. 비동기 이벤트 처리가 완료되었는지 확인하려면 이 오버로드에서 매개 변수를 받은 후 매개 변수를 사용하지 않는 오버로드를 true 호출 WaitForExit() 합니다. Windows Forms 애플리케이션에서 이벤트가 올바르게 처리되도록 Exited 하려면 속성을 설정합니다 SynchronizingObject .
연결된 프로세스가 종료되면(정상 또는 비정상적인 종료를 통해 운영 체제에 의해 종료됨) 시스템은 프로세스에 대한 관리 정보를 저장하고 호출 WaitForExit(Int32)한 구성 요소로 돌아갑니다. Process 그런 다음, 종료된 프로세스를 사용하여 Handle 구성 요소가 포함된 ExitTime정보에 액세스할 수 있습니다.
연결된 프로세스가 종료되었 Handle 으므로 구성 요소의 속성이 더 이상 기존 프로세스 리소스를 가리키지 않습니다. 대신 핸들은 프로세스 리소스에 대한 운영 체제의 정보에 액세스하는 데만 사용할 수 있습니다. 시스템은 구성 요소에서 릴리스되지 않은 종료된 프로세스에 Process 대한 핸들을 인식하므로 구성 요소가 특히 리소스를 해제할 때까지 Process 메모리에 해당 및 Handle 정보를 유지 ExitTime 합니다. 이러한 이유로 인스턴스를 호출 Start 할 때마다 연결된 프로세스가 종료되고 해당 프로세스에 대한 Process 관리 정보가 더 이상 필요하지 않을 때 호출 Close 합니다. Close 는 종료된 프로세스에 할당된 메모리를 해제합니다.
추가 정보
적용 대상
WaitForExit(TimeSpan)
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
- Source:
- Process.cs
프로세스 구성 요소에 연결된 프로세스가 종료될 때까지 지정된 시간을 기다리도록 지시합니다.
public:
bool WaitForExit(TimeSpan timeout);
public bool WaitForExit(TimeSpan timeout);
member this.WaitForExit : TimeSpan -> bool
Public Function WaitForExit (timeout As TimeSpan) As Boolean
매개 변수
- timeout
- TimeSpan
연결된 프로세스가 종료될 때까지 대기하는 시간입니다.
반환
true연결된 프로세스가 종료되었으면 이고, 그렇지 않으면 . false
설명
발언을 참조 WaitForExit(Int32) 하세요.