Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft ab oder legt fest, ob beim Beenden des Prozesses das Exited-Ereignis ausgelöst werden soll.
Namespace: System.Diagnostics
Assembly: System (in system.dll)
Syntax
'Declaration
Public Property EnableRaisingEvents As Boolean
'Usage
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)
Eigenschaftenwert
true, wenn das Exited-Ereignis ausgelöst werden soll, wenn der zugeordnete Prozess beendet wird (entweder durch Beenden oder einen Aufruf von Kill), andernfalls false. Der Standardwert ist false.
Hinweise
Die EnableRaisingEvents-Eigenschaft gibt an, ob die Komponente benachrichtigt werden soll, wenn das Betriebssystem einen Prozess beendet hat. Bei einer asynchronen Verarbeitung wird die Anwendung mithilfe der EnableRaisingEvents-Eigenschaft über das Beenden eines Prozesses benachrichtigt. Um das synchrone Warten der Anwendung auf ein Beendigungsereignis zu erzwingen (wodurch die Verarbeitung der Anwendung bis zum Eintreten des Beendigungsereignisses unterbrochen wird), verwenden Sie die WaitForExit-Methode.
Hinweis
Wenn Sie Visual Studio verwenden und auf eine Process-Komponente im Projekt doppelklicken, werden automatisch ein Exited-Ereignisdelegat und ein Ereignishandler generiert. Zusätzlicher Code legt die EnableRaisingEvents-Eigenschaft auf false fest. Sie müssen diese Eigenschaft in true ändern, damit der Ereignishandler beim Beenden des zugeordneten Prozesses ausgeführt wird.
Wenn der Wert der EnableRaisingEvents-Komponente auf true festgelegt ist und ein zugeordneter Prozess vom Betriebssystem ordnungsgemäß oder nicht ordnungsgemäß beendet wurde, benachrichtigt das Betriebssystem jede Prozesskomponente, der der Prozess zugeordnet war. Wenn der Prozess von einer Komponente gestartet wurde, kann diese anschließend auf die administrativen Informationen für den zugeordneten Prozess zugreifen, die vom Betriebssystem noch gespeichert werden. Diese Informationen beinhalten ExitTime und ExitCode.
Nach Beenden des zugeordneten Prozesses zeigt das Handle der Komponente nicht mehr auf eine vorhandene Prozessressource. Stattdessen können Sie damit nur auf die Informationen des Betriebssystems über die Prozessressource zugreifen. Das Betriebssystem berücksichtigt das Vorhandensein von Handles für beendete Prozesse, die nicht von Process-Komponenten freigegeben wurden, und behält daher Informationen zu ExitTime und Handle im Speicher.
Das Überwachen auf Beendigung von Prozessen ist mit einem gewissen Aufwand verbunden. Wenn EnableRaisingEvents auf true festgelegt ist, wird das Exited-Ereignis bei Beendigung des zugeordneten Prozesses ausgelöst. Die Prozeduren, die Sie für das Exited-Ereignis angegeben haben, werden zu dieser Zeit ausgeführt.
In einigen Fällen startet die Anwendung einen Prozess, muss jedoch nicht über dessen Beendigung benachrichtigt werden. Die Anwendung kann z. B. den Editor starten, um dem Benutzer die Bearbeitung von Texten zu ermöglichen, dann jedoch die Anwendung Editor nicht weiter verwenden. Sie können festlegen, dass Sie bei Beendigung des Prozesses nicht informiert werden, da dies für die weitere Ausführung der Anwendung nicht relevant ist. Durch Festlegen von EnableRaisingEvents auf false werden Systemressourcen gespart.
Beispiel
Im folgenden Codebeispiel wird ein Prozess erstellt, der eine Datei druckt. Die EnableRaisingEvents-Eigenschaft wird festgelegt, damit der Prozess das Exited-Ereignis auslöst, wenn er beendet wird. Der Exited-Ereignishandler zeigt Prozessinformationen an.
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-Sicherheit
- SecurityPermission zum Aufrufen von Process-Membern. Anforderungswert: LinkDemand; Benannte Berechtigungssätze: FullTrust.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0
Siehe auch
Referenz
Process-Klasse
Process-Member
System.Diagnostics-Namespace
WaitForExit
Exited
CloseMainWindow
Kill
Handle
ExitTime
HasExited