次の方法で共有


Process.WaitForExit メソッド (Int32)

関連付けられたプロセスが終了するまで、最大指定したミリ秒間待機するように Process コンポーネントに指示します。

Overloads Public Function WaitForExit( _
   ByVal milliseconds As Integer _) As Boolean
[C#]
public bool WaitForExit(intmilliseconds);
[C++]
public: bool WaitForExit(intmilliseconds);
[JScript]
public function WaitForExit(
   milliseconds : int) : Boolean;

パラメータ

  • milliseconds
    関連付けられたプロセスが終了するまで待機する時間。単位はミリ秒です。最大値は、32 ビット整数で表現できる最大値で、オペレーティング システムに対して無限大で表現される値です。

戻り値

関連付けられたプロセスが終了した場合は true 。それ以外の場合は false

例外

例外の種類 条件
Win32Exception 待機設定にアクセスできませんでした。
SystemException プロセス Id が設定されておらず、 Id プロパティの判断材料となる Handle が存在しません。

または

Process オブジェクトに関連付けられているプロセスがありません。

または

リモート コンピュータで実行されているプロセスに対して WaitForExit を呼び出そうとしています。このメソッドが利用できるのは、ローカル コンピュータで実行されているプロセスだけです。

解説

WaitForExit を使用して、関連付けられたプロセスが終了するまで現在のスレッドを待機させることができます。

この WaitForExit のオーバーロードによって、 Process コンポーネントはプロセスが終了するまで一定時間待機します。終了要求が拒否されたために関連付けられたプロセスが間隔の終わりまでに終了しなかった場合は、呼び出し元のプロシージャに false が返されます。 milliseconds には負数を指定できますが、負数を指定すると、 WaitForExit で非常に大きな正数として扱われます。メソッドに 0 を渡すと、プロセスが既に終了している場合にだけ true が返されます。

関連付けられたプロセスが終了すると (正常終了または異常終了によってオペレーティング システムでシャットダウンされると)、システムはそのプロセスに関する管理情報を格納し、 WaitForExit を呼び出したコンポーネントに制御を戻します。 Process コンポーネントは、終了したプロセスを識別する Handle を使用して、 ExitTime を含む情報にアクセスできます。

関連付けられているプロセスが終了したため、コンポーネントの Handle プロパティが指すプロセス リソースは存在しません。代わりに、ハンドルの用途は、プロセス リソースに関するオペレーティング システムの情報にアクセスするだけになります。システムは、終了したものの Process コンポーネントで解放されていないプロセスのハンドルを認識します。そのため、 Process コンポーネントがリソースを解放するまで、 ExitTimeHandle の情報をメモリに保持します。この理由により、 Process インスタンスの Start を呼び出すたびに、関連付けられたプロセスが終了し、プロセスに関する管理情報が必要なくなったときに Close を呼び出します。 Close は、終了したプロセスに割り当てられたメモリを解放します。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

Process クラス | Process メンバ | System.Diagnostics 名前空間 | Process.WaitForExit オーバーロードの一覧 | CloseMainWindow | Kill | Handle | ExitTime | EnableRaisingEvents | HasExited | Exited