Heim > Backend-Entwicklung > C++ > Wie kann ich in C# asynchron auf den Prozessausgang warten, ohne die GUI einzufrieren?

Wie kann ich in C# asynchron auf den Prozessausgang warten, ohne die GUI einzufrieren?

Mary-Kate Olsen
Freigeben: 2025-01-04 14:25:43
Original
463 Leute haben es durchsucht

How Can I Asynchronously Wait for Process Exit in C# Without Freezing the GUI?

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))
Nach dem Login kopieren

Innerhalb der Methode: