Process.EnableRaisingEvents プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Process.EnableRaisingEvents プロパティの意味・解説 

Process.EnableRaisingEvents プロパティ

プロセスが終了したときに、Exited イベントを発生させるかどうかを取得または設定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Property EnableRaisingEvents As
 Boolean
Dim instance As Process
Dim value As Boolean

value = instance.EnableRaisingEvents

instance.EnableRaisingEvents = value
public bool EnableRaisingEvents { get;
 set; }
public:
property bool EnableRaisingEvents {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_EnableRaisingEvents ()

/** @property */
public void set_EnableRaisingEvents (boolean
 value)
public function get EnableRaisingEvents
 () : boolean

public function set EnableRaisingEvents
 (value : 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 に設定すると、システム リソースを節約できます。

使用例使用例

ファイルを出力するプロセスを作成するコード例を次に示します。プロセスが終了するときに Exited イベントが発生するように EnableRaisingEvents プロパティを設定します。Exited イベント ハンドラは、プロセス情報を表示します。

Imports System
Imports System.Diagnostics
Imports System.ComponentModel
Imports System.Threading
Imports Microsoft.VisualBasic

Class PrintProcessClass

    Private WithEvents myProcess As
 New Process
    Private elapsedTime As Integer
    Private eventHandled As Boolean

    ' Print a file with any known extension.
    Sub PrintDoc(ByVal fileName As
 String)

        elapsedTime = 0
        eventHandled = False

        Try
            ' Start a process to print a file and raise an event when
 done.
            myProcess.StartInfo.FileName = fileName
            myProcess.StartInfo.Verb = "Print"
            myProcess.StartInfo.CreateNoWindow = True
            myProcess.EnableRaisingEvents = True
            myProcess.Start()

        Catch ex As Exception
            Console.WriteLine("An error occurred trying to print
 ""{0}"":"
 & _
                vbCrLf & ex.Message, fileName)
            Return
        End Try

        ' Wait for Exited event, but not more than 30 seconds.
        Const SLEEP_AMOUNT As Integer
 = 100
        Do While Not eventHandled
            elapsedTime += SLEEP_AMOUNT
            If elapsedTime > 30000 Then
                Exit Do
            End If
            Thread.Sleep(SLEEP_AMOUNT)
        Loop
    End Sub

    ' Handle Exited event and display process information.
    Private Sub myProcess_Exited(ByVal
 sender As Object, _
            ByVal e As System.EventArgs) Handles
 myProcess.Exited

        eventHandled = True
        Console.WriteLine("Exit time:    {0}" &
 vbCrLf & _
            "Exit code:    {1}" & vbCrLf &
 "Elapsed time: {2}", _
            myProcess.ExitTime, myProcess.ExitCode, elapsedTime)
    End Sub

    Shared Sub Main(ByVal
 args() As String)

        ' Verify that an argument has been entered.
        If args.Length <= 0 Then
            Console.WriteLine("Enter a file name.")
            Return
        End If

        ' Create the process and print the document.
        Dim myProcess As New
 PrintProcessClass
        myProcess.PrintDoc(args(0))
    End Sub
End Class
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

Process.EnableRaisingEvents プロパティのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



Process.EnableRaisingEvents プロパティのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS