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
Mary-Kate Olsenoriginal
2025-01-04 14:25:43475parcourir

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))

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