Maison > développement back-end > C++ > Comment effectuer des tâches en arrière-plan dans WPF avec rapport de progression et annulation ?

Comment effectuer des tâches en arrière-plan dans WPF avec rapport de progression et annulation ?

Linda Hamilton
Libérer: 2025-01-07 14:48:43
original
486 Les gens l'ont consulté

How to Perform Background Tasks in WPF with Progress Reporting and Cancellation?

Exécution en arrière-plan dans WPF

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.

API basée sur les tâches et Async/Await

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.

Exemple

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);
    }
}
Copier après la connexion

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

Ressources supplémentaires

Pour plus d'informations et une compréhension approfondie :

  • [Comment exécuter une tâche en arrière-plan WPF tout en étant capable de fournir un rapport et permettre annulation ?](https://stackoverflow.com/questions/498416/how-to-execute-task-in-the-wpf-background-while-able-to-provide-report-and-al)
  • Async en 4.5 : Activation de la progression et de l'annulation dans les API async (blog post)
  • [Async et Await](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/)
  • [Async/ Attendre FAQ](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-faq)

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal