Asynchrones Warten auf Prozessbeendigung
In vielen Anwendungen ist es wichtig, auf die Beendigung eines Prozesses zu warten, bevor Sie fortfahren. Die Verwendung von Process.WaitForExit() kann jedoch dazu führen, dass die grafische Benutzeroberfläche (GUI) einfriert. Um dieses Problem zu vermeiden, ist eine ereignisbasierte oder threadbasierte Lösung erforderlich.
Ereignisbasierter Ansatz
Ab .NET 4.0/C# 5 ist die asynchrone Das Muster bietet eine elegantere Möglichkeit, den Warteprozess darzustellen. Die WaitForExitAsync()-Methode kann zur Process-Klasse hinzugefügt werden, sodass die Anwendung asynchron auf das Beenden des Prozesses warten kann:
public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken))
Innerhalb der Methode:
Verwendung
So verwenden Sie die WaitForExitAsync()-Methode:
public async void Test() { var process = new Process("processName"); process.Start(); await process.WaitForExitAsync(); // Do some fun stuff here... }
Das obige ist der detaillierte Inhalt vonWie kann ich in C# asynchron auf den Prozessausgang warten, ohne die GUI einzufrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!