Maison > développement back-end > C++ > Comment implémenter un BackgroundWorker avec des mises à jour de progression à l'aide d'une ProgressBar ?

Comment implémenter un BackgroundWorker avec des mises à jour de progression à l'aide d'une ProgressBar ?

Mary-Kate Olsen
Libérer: 2025-01-09 18:51:43
original
379 Les gens l'ont consulté

How to Implement a BackgroundWorker with Progress Updates Using a ProgressBar?

Utilisez la barre de progression pour mettre à jour la progression du travailleur en arrière-plan

Question :

Comment utiliser le contrôle ProgressBar pour implémenter un BackgroundWorker avec des mises à jour de progression ?

Réponse :

Pour implémenter correctement un BackgroundWorker avec les mises à jour ProgressBar, suivez ces étapes :

  • Dans l'événement DoWork de BackgroundWorker, utilisez la méthode ReportProgress pour signaler périodiquement la progression.
  • Dans l'événement ProgressChanged, mettez à jour la valeur de ProgressBar pour afficher la progression signalée sur le fil de discussion de l'interface utilisateur.
  • Définissez la propriété WorkerReportsProgress de BackgroundWorker sur true pour autoriser les rapports de progression.
  • Utilisez la méthode RunWorkerAsync pour exécuter BackgroundWorker de manière asynchrone.

Ce qui suit est un exemple d'implémentation simple de BackgroundWorker qui met à jour le contrôle ProgressBar :

Code XAML :

<code class="language-xml"><ProgressBar Height="25" Margin="20" Maximum="50" Minimum="0" x:Name="myProgressBar"/></code>
Copier après la connexion

Code backend :

<code class="language-csharp">using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;

public partial class MainWindow : Window
{
    BackgroundWorker backgroundWorker = new BackgroundWorker();

    public MainWindow()
    {
        InitializeComponent();

        backgroundWorker.WorkerReportsProgress = true;
        backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
        backgroundWorker.DoWork += BackgroundWorker_DoWork;

        backgroundWorker.RunWorkerAsync();
    }

    private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
    {
        for (int i = 0; i < 50; i++)
        {
            System.Threading.Thread.Sleep(100); // 模拟工作
            backgroundWorker.ReportProgress(i);
        }
    }

    private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        myProgressBar.Value = e.ProgressPercentage;
    }
}</code>
Copier après la connexion

En suivant ces étapes, vous pouvez créer un BackgroundWorker qui s'intègre parfaitement à l'interface graphique pour fournir des mises à jour de progression à l'utilisateur.

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