Process.WaitForExit Process.WaitForExit Process.WaitForExit Process.WaitForExit Method

定義

関連付けられたプロセスが終了するまで待機する時間を設定し、指定した時間が経過するかプロセスが終了するまで現在のスレッドの実行をブロックします。 Sets the period of time to wait for the associated process to exit, and blocks the current thread of execution until the time has elapsed or the process has exited. 現在のスレッドがブロックされないようにする場合は、Exited イベントを使用します。 To avoid blocking the current thread, use the Exited event. コード例については、StandardError および ExitCode プロパティのリファレンス ページを参照してください。 For code examples, see the StandardError and the ExitCode property reference pages.

オーバーロード

WaitForExit() WaitForExit() WaitForExit() WaitForExit()

関連付けられたプロセスが終了するまで無期限に待機するように Process コンポーネントに指示します。 Instructs the Process component to wait indefinitely for the associated process to exit.

WaitForExit(Int32) WaitForExit(Int32) WaitForExit(Int32) WaitForExit(Int32)

関連付けられたプロセスが終了するまで、最大で指定したミリ秒間待機するように Process コンポーネントに指示します。 Instructs the Process component to wait the specified number of milliseconds for the associated process to exit.

WaitForExit() WaitForExit() WaitForExit() WaitForExit()

関連付けられたプロセスが終了するまで無期限に待機するように Process コンポーネントに指示します。 Instructs the Process component to wait indefinitely for the associated process to exit.

public:
 void WaitForExit();
public void WaitForExit ();
member this.WaitForExit : unit -> unit
Public Sub WaitForExit ()
例外

待機の設定にアクセスできませんでした。 The wait setting could not be accessed.

プロセス Id が設定されておらず、Id プロパティを判別する元となる Handle が存在しません。 No process Id has been set, and a Handle from which the Id property can be determined does not exist. - または - -or- この Process オブジェクトに関連付けられているプロセスはありません。 There is no process associated with this Process object. - または - -or- リモート コンピューターで実行されているプロセスの WaitForExit() を呼び出そうとしています。 You are attempting to call WaitForExit() for a process that is running on a remote computer. このメソッドはローカル コンピューターで実行中のプロセスに対してのみ使用可能です。 This method is available only for processes that are running on the local computer.

「解説」を参照してください、StandardErrorプロパティ リファレンスのページ。See the Remarks section of the StandardError property reference page.

注釈

WaitForExit() 関連付けられたプロセスが終了するまで待ってから、現在のスレッドを使用します。WaitForExit() makes the current thread wait until the associated process terminates. これは、プロセスの他のすべてのメソッドが呼び出された後に呼び出す必要があります。It should be called after all other methods are called on the process. 現在のスレッドがブロックされないようにする場合は、Exited イベントを使用します。To avoid blocking the current thread, use the Exited event.

このメソッドに指示、Processコンポーネントを膨大な量のプロセスとイベント ハンドラーの終了時間を待機します。This method instructs the Process component to wait an infinite amount of time for the process and event handlers to exit. これには、アプリケーションの応答を停止する可能性があります。This can cause an application to stop responding. 呼び出す場合など、CloseMainWindowユーザー インターフェイスを持つプロセスでは、オペレーティング システムに要求を関連付けられているプロセスを終了する可能性があります処理されない場合は、プロセスは、メッセージ ループに入ることはなくに書き込まれます。For example, if you call CloseMainWindow for a process that has a user interface, the request to the operating system to terminate the associated process might not be handled if the process is written to never enter its message loop.

注意

.NET Framework 3.5.NET Framework 3.5以前のバージョン、WaitForExit()のオーバー ロードを待機MaxValueミリ秒 (約 24 日)、not 無期限にします。In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the WaitForExit() overload waited for MaxValue milliseconds (approximately 24 days), not indefinitely. また、以前のバージョン待つことはなく終了イベント ハンドラーの完全なMaxValue時間に達しました。Also, previous versions did not wait for the event handlers to exit if the full MaxValue time was reached.

このオーバー ロードにより、リダイレクトされた標準出力の非同期イベントの処理など、すべての処理が完了したこと。This overload ensures that all processing has been completed, including the handling of asynchronous events for redirected standard output. 呼び出しの後に、このオーバー ロードを使用する必要があります、WaitForExit(Int32)オーバー ロードするときに、標準出力は非同期イベント ハンドラーにリダイレクトされました。You should use this overload after a call to the WaitForExit(Int32) overload when standard output has been redirected to asynchronous event handlers.

システムがプロセスの詳細の管理情報を格納しが呼び出されているコンポーネントを返します (正常または異常終了を操作システムによって停止) の場合は、関連付けられたプロセスが終了したときWaitForExit()します。When an associated process exits (that is, when it is shut down by the operation system through a normal or abnormal termination), the system stores administrative information about the process and returns to the component that had called WaitForExit(). Processコンポーネントを含む、情報にアクセスできる、ExitTimeを使用して、Handle終了のプロセスにします。The Process component can then access the information, which includes the ExitTime, by using the Handle to the exited process.

関連付けられたプロセスが終了したため、Handleコンポーネントのプロパティが不要になった既存のプロセス リソースをポイントします。Because the associated process has exited, the Handle property of the component no longer points to an existing process resource. 代わりにのハンドルは、プロセスのリソースについては、オペレーティング システムのアクセスにのみ使用できます。Instead, the handle can be used only to access the operating system's information about the process resource. システムは、解放されていない終了のプロセスへのハンドルのProcessコンポーネント、それが維持されるように、ExitTimeHandleまでメモリ内の情報、Processコンポーネントが具体的には、リソースを解放します。The system is aware of handles to exited processes that have not been released by Process components, so it keeps the ExitTime and Handle information in memory until the Process component specifically frees the resources. このため、いつでも呼び出すStartProcessインスタンスを呼び出すCloseと関連付けられたプロセスが終了することについて、管理情報が不要になった。For this reason, any time you call Start for a Process instance, call Close when the associated process has terminated and you no longer need any administrative information about it. Close 終了したプロセスに割り当てられたメモリを解放します。Close frees the memory allocated to the exited process.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼。 for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。 This member cannot be used by partially trusted code.

こちらもご覧ください

WaitForExit(Int32) WaitForExit(Int32) WaitForExit(Int32) WaitForExit(Int32)

関連付けられたプロセスが終了するまで、最大で指定したミリ秒間待機するように Process コンポーネントに指示します。 Instructs the Process component to wait the specified number of milliseconds for the associated process to exit.

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 Int32 Int32 Int32

関連付けられたプロセスが終了するまで待機する時間。単位はミリ秒です。 The amount of time, in milliseconds, to wait for the associated process to exit. 最大値は、32 ビット整数で表現できる最大値で、オペレーティング システムに対して無限大で表現される値です。 The maximum is the largest possible value of a 32-bit integer, which represents infinity to the operating system.

戻り値

関連付けられたプロセスが終了した場合は true。それ以外の場合は false true if the associated process has exited; otherwise, false.

例外

待機の設定にアクセスできませんでした。 The wait setting could not be accessed.

プロセス Id が設定されておらず、Id プロパティを判別する元となる Handle が存在しません。 No process Id has been set, and a Handle from which the Id property can be determined does not exist. - または - -or- この Process オブジェクトに関連付けられているプロセスはありません。 There is no process associated with this Process object. - または - -or- リモート コンピューターで実行されているプロセスの WaitForExit(Int32) を呼び出そうとしています。 You are attempting to call WaitForExit(Int32) for a process that is running on a remote computer. このメソッドはローカル コンピューターで実行中のプロセスに対してのみ使用可能です。 This method is available only for processes that are running on the local computer.

milliseconds は無限のタイムアウトを表す -1 以外の負の数です。 milliseconds is a negative number other than -1, which represents an infinite time-out.

コード例をご覧ください、ExitCodeプロパティ。See the code example for the ExitCode property.

注釈

WaitForExit(Int32) 関連付けられたプロセスが終了するまで待ってから、現在のスレッドを使用します。WaitForExit(Int32) makes the current thread wait until the associated process terminates. これは、プロセスの他のすべてのメソッドが呼び出された後に呼び出す必要があります。It should be called after all other methods are called on the process. 現在のスレッドがブロックされないようにする場合は、Exited イベントを使用します。To avoid blocking the current thread, use the Exited event.

このメソッドに指示、Processコンポーネントをある程度のプロセスが終了する時間を待機します。This method instructs the Process component to wait a finite amount of time for the process to exit. 終了する要求が拒否されたため、間隔の終了で関連付けられたプロセスは終了しない場合falseが呼び出し元のプロシージャに返されます。If the associated process does not exit by the end of the interval because the request to terminate is denied, false is returned to the calling procedure. 指定できますTimeout.Infinitemilliseconds、およびProcess.WaitForExit(Int32)と同様に動作は、WaitForExit()オーバー ロードします。You can specify Timeout.Infinite for milliseconds, and Process.WaitForExit(Int32) will behave the same as the WaitForExit() overload. 返すかどうかは、0 (ゼロ) をメソッドに渡す、trueプロセスが既に終了している場合にのみ、すぐに返しますfalseします。If you pass 0 (zero) to the method, it returns true only if the process has already exited; otherwise, it immediately returns false.

注意

.NET Framework 3.5.NET Framework 3.5と以前のバージョンで場合millisecondsが-1 の場合、WaitForExit(Int32)のオーバー ロードを待機MaxValueミリ秒 (約 24 日)、not 無期限にします。In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, if milliseconds was -1, the WaitForExit(Int32) overload waited for MaxValue milliseconds (approximately 24 days), not indefinitely.

標準出力は、非同期イベント ハンドラーにリダイレクトされましたが、このメソッドが戻るときの出力の処理が完了していないことになります。When standard output has been redirected to asynchronous event handlers, it is possible that output processing will not have completed when this method returns. 非同期イベント処理が完了したことを確認するを呼び出して、WaitForExit()を受信した後はパラメーターを受け取らないオーバー ロードをtrueこのオーバー ロードからします。To ensure that asynchronous event handling has been completed, call the WaitForExit() overload that takes no parameter after receiving a true from this overload. ために、Exitedイベントは、Windows フォーム アプリケーションで正しく処理、設定、SynchronizingObjectプロパティ。To help ensure that the Exited event is handled correctly in Windows Forms applications, set the SynchronizingObject property.

関連付けられたプロセスが終了したとき (がシャット ダウン正常または異常終了により、オペレーティング システムによって)、システムがプロセスの詳細の管理の情報を格納しが呼び出されているコンポーネントを返しますWaitForExit(Int32)します。When an associated process exits (is shut down by the operating system through a normal or abnormal termination), the system stores administrative information about the process and returns to the component that had called WaitForExit(Int32). Processコンポーネントを含む、情報にアクセスできる、ExitTimeを使用して、Handle終了のプロセスにします。The Process component can then access the information, which includes the ExitTime, by using the Handle to the exited process.

関連付けられたプロセスが終了したため、Handleコンポーネントのプロパティが不要になった既存のプロセス リソースをポイントします。Because the associated process has exited, the Handle property of the component no longer points to an existing process resource. 代わりにのハンドルは、プロセスのリソースについては、オペレーティング システムのアクセスにのみ使用できます。Instead, the handle can be used only to access the operating system's information about the process resource. システムは、解放されていない終了のプロセスへのハンドルのProcessコンポーネント、それが維持されるように、ExitTimeHandleまでメモリ内の情報、Processコンポーネントが具体的には、リソースを解放します。The system is aware of handles to exited processes that have not been released by Process components, so it keeps the ExitTime and Handle information in memory until the Process component specifically frees the resources. このため、いつでも呼び出すStartProcessインスタンスを呼び出すCloseと関連付けられたプロセスが終了することについて、管理情報が不要になった。For this reason, any time you call Start for a Process instance, call Close when the associated process has terminated and you no longer need any administrative information about it. Close 終了したプロセスに割り当てられたメモリを解放します。Close frees the memory allocated to the exited process.

セキュリティ

LinkDemand
直前の呼び出し元に対する完全な信頼。 for full trust for the immediate caller. このメンバーは、部分的に信頼されているコードから使用することはできません。 This member cannot be used by partially trusted code.

こちらもご覧ください

適用対象