Maison > développement back-end > C++ > Comment puis-je attendre de manière asynchrone la sortie du processus en C# sans geler l'interface graphique ?

Comment puis-je attendre de manière asynchrone la sortie du processus en C# sans geler l'interface graphique ?

Mary-Kate Olsen
Libérer: 2025-01-04 14:25:43
original
432 Les gens l'ont consulté

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

Attente de la sortie d'un processus de manière asynchrone

Dans de nombreuses applications, il est essentiel d'attendre la sortie d'un processus avant de continuer. Cependant, l'utilisation de Process.WaitForExit() peut provoquer le blocage de l'interface utilisateur graphique (GUI). Pour éviter ce problème, une solution basée sur les événements ou sur les threads est requise.

Approche basée sur les événements

À partir de .NET 4.0/C# 5, l'async Le motif offre une manière plus élégante de représenter le processus d’attente. La méthode WaitForExitAsync() peut être ajoutée à la classe Process, permettant à l'application d'attendre de manière asynchrone la fin du processus :

public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken))
Copier après la connexion

À l'intérieur de la méthode :