Exécuter des tâches en arrière-plan dans les applications WPF
Dans les applications WPF, il est souvent nécessaire d'effectuer des tâches en arrière-plan pour éviter de figer l'interface utilisateur ( interface utilisateur). Pour ce faire, les développeurs ont besoin d'un mécanisme qui répond aux critères suivants :
Approche recommandée : API basée sur les tâches et Async/Await
Avec la sortie de .NET 4.5 (ou .NET 4.0 avec la bibliothèque Microsoft.Bcl.Async), l'approche recommandée pour les tâches en arrière-plan consiste à utiliser l'API basée sur les tâches et async /attendre. Cette technique offre les avantages suivants :
Exemple d'implémentation
Le code suivant montre comment exécuter une tâche en arrière-plan à l'aide de l'API basée sur les tâches et async/await :
private async void Start(object sender, RoutedEventArgs e) { try { await Task.Run(() => { int progress = 0; for (; ; ) { System.Threading.Thread.Sleep(1); progress++; Logger.Info(progress); } }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Ce code génère une nouvelle tâche en parallèle du thread de l'interface utilisateur, permettant à l'interface utilisateur de rester réactive pendant que la tâche en arrière-plan progresse. Il inclut également la gestion des exceptions pour afficher un message d'erreur si une exception se produit pendant l'exécution de la tâche.
Ressources supplémentaires
Pour plus d'informations sur l'exécution de tâches en arrière-plan dans WPF avec rapport de progression et la prise en charge de l'annulation, considérez les références suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!