Process.Exited イベントとは? わかりやすく解説

Process.Exited イベント

プロセス終了したときに発生します

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

解説解説

Exited イベントは、関連付けられたプロセス終了したことを示します。このイベントの発生は、プロセス強制終了された (中止された) か、正常終了したことを示します

関連付けられたプロセス終了したときの通知方法には、同期と非同期2 つ方法あります同期通知は、関連付けられたコンポーネント終了するまでアプリケーションの処理を一時中断する WaitForExit メソッド呼び出し依存します非同期通知は、Exited イベント依存します。どちらの場合も、プロセス終了したという通知Process コンポーネント受け取ることができるように、EnableRaisingEvents を true設定する必要があります

オペレーティング システムプロセスシャットダウンすると、終了待機していたプロセス コンポーネント通知されます。コンポーネントは、プロセス識別していたハンドル使用してオペレーティング システム メモリ常駐している関連付けられたプロセス情報 (ExitTime プロパティなど) にアクセスできます

関連付けられているプロセス終了したため、コンポーネントHandle プロパティが指すプロセス リソース存在しません。代わりに、その用途プロセス リソースに関するオペレーティング システム情報アクセスするだけになりますシステムは、Process コンポーネント解放されていない終了したプロセス識別するハンドルがあることを認識します。そのため、Process コンポーネントが特にリソース解放するまで、ExitTime プロパティHandle プロパティ情報メモリ保持します

メモメモ

終了したプロセス識別するハンドルがあっても、Startもう一度呼び出して同じプロセス再接続することはできません。Start呼び出すと、自動的に関連付けられたプロセス解放され、同じファイルプロセス接続されますが、これは完全に新しHandle です。

使用例使用例

ファイル出力するプロセス作成するコード例次に示しますプロセス作成されたときに EnableRaisingEvents設定されているので、プロセス終了するExited イベント発生します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セキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からProcess.Exited イベントを検索した結果を表示しています。
Weblioに収録されているすべての辞書からProcess.Exited イベントを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からProcess.Exited イベント を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Process.Exited イベントのお隣キーワード
検索ランキング

   

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



Process.Exited イベントのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS