プロセスが終了したときに、 Exited イベントを発生させるかどうかを取得または設定します。
Public Property EnableRaisingEvents As Boolean
[C#]
public bool EnableRaisingEvents {get; set;}
[C++]
public: __property bool get_EnableRaisingEvents();public: __property void set_EnableRaisingEvents(bool);
[JScript]
public function get EnableRaisingEvents() : Boolean;public function set EnableRaisingEvents(Boolean);
プロパティ値
正常終了または Kill の呼び出しによって関連付けられたプロセスが終了したときに Exited イベントを発生させる場合は true 。それ以外の場合は false 。既定値は false です。
解説
EnableRaisingEvents プロパティは、オペレーティング システムがプロセスをシャットダウンしたときにコンポーネントに通知するかどうかを示します。 EnableRaisingEvents プロパティは、非同期処理で使用し、プロセスが終了したことをアプリケーションに通知します。アプリケーションが終了イベントを同期的に待つ (終了イベントが発生するまでアプリケーションの処理を中断する) ようにするには、 WaitForExit メソッドを使用します。
メモ Visual Studio を使用している場合は、プロジェクトの Process コンポーネントをダブルクリックすると、 Exited イベント デリゲートとイベント ハンドラが自動的に生成されます。追加のコードによって、 EnableRaisingEvents プロパティが false に設定されます。関連付けられたプロセスが終了したときにイベント ハンドラを実行するには、このプロパティを true に変更する必要があります。
コンポーネントの EnableRaisingEvents 値が true の場合は、オペレーティング システムでシャットダウンされた後、関連付けられたプロセスが終了したときに、正常終了か異常終了かにかかわらず、オペレーティング システムはプロセスが関連付けられている各プロセス コンポーネントに通知します。コンポーネントがプロセスを起動した場合、コンポーネントは関連付けられたプロセスの管理情報にアクセスできます。この情報は、終了後もオペレーティング システムによって格納されています。これらの情報には、 ExitTime 、 ExitCode などがあります。
関連付けられているプロセスが終了した後は、コンポーネントの Handle は実在するプロセス リソースを指さなくなります。代わりに、その用途はプロセス リソースに関するオペレーティング システムの情報にアクセスするだけになります。オペレーティング システムは、 Process コンポーネントで解放されていない終了したプロセスを識別するハンドルがあることを認識します。そのため、 ExitTime と Handle の情報をメモリに保持します。
プロセス終了の監視に関連付けられているコストがあります。 EnableRaisingEvents が true の場合は、関連付けられたプロセスが終了したときに Exited イベントが発生します。このとき、 Exited イベントに対して指定したプロシージャが実行されます。
アプリケーションがプロセスを起動しても、終了通知を受ける必要がない場合があります。たとえば、アプリケーションでメモ帳を起動してテキストを編集したものの、その後はメモ帳を使用しない場合です。アプリケーションの操作の継続に関係がないため、プロセスが終了しても通知しないように選択できます。 EnableRaisingEvents を false に設定すると、システム リソースを節約できます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (完全信頼を指定して System.Diagnostic.Process のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
Process クラス | Process メンバ | System.Diagnostics 名前空間 | WaitForExit | Exited | CloseMainWindow | Kill | Handle | ExitTime | HasExited