Dans les applications WPF, les tâches susceptibles de bloquer le thread de l'interface utilisateur doivent être exécutées en arrière-plan. Lors de la sélection d'une approche appropriée, tenez compte de facteurs tels que le blocage des threads, les rapports de progression, l'annulation et la prise en charge du multithreading.
Avec .NET 4.5 ou version ultérieure (ou .NET 4.0 avec Microsoft.Bcl.Async), l'API basée sur les tâches utilisant async/await offre la solution optimale pour l'exécution en arrière-plan. Il permet une expérience de codage pratique et structurée.
Le code suivant montre un exemple d'utilisation de async/await pour exécuter une tâche en arrière-plan :
private async void Start(object sender, RoutedEventArgs e) { try { await Task.Run(() => { int progress = 0; for (; ; ) { Thread.Sleep(1); progress++; Logger.Info(progress); } }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Ce code crée une tâche qui s'exécute en arrière-plan, permettant le reporting de progression via la variable de progression et l'annulation via CancellationTokenSource (pas illustré).
Pour plus d'informations et une compréhension approfondie :
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!