Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Melaksanakan BackgroundWorker dengan Kemas Kini Kemajuan Menggunakan ProgressBar?

Bagaimana untuk Melaksanakan BackgroundWorker dengan Kemas Kini Kemajuan Menggunakan ProgressBar?

Mary-Kate Olsen
Lepaskan: 2025-01-09 18:51:43
asal
379 orang telah melayarinya

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

Gunakan bar kemajuan untuk mengemas kini kemajuan pekerja latar belakang

Soalan:

Bagaimana untuk menggunakan kawalan ProgressBar untuk melaksanakan BackgroundWorker dengan kemas kini kemajuan?

Jawapan:

Untuk melaksanakan BackgroundWorker dengan kemas kini ProgressBar dengan betul, ikut langkah berikut:

  • Dalam acara DoWork BackgroundWorker, gunakan kaedah ReportProgress untuk melaporkan kemajuan secara berkala.
  • Dalam acara ProgressChanged, kemas kini nilai ProgressBar untuk menunjukkan kemajuan yang dilaporkan pada urutan UI.
  • Tetapkan sifat WorkerReportsProgress BackgroundWorker kepada benar untuk membolehkan pelaporan kemajuan.
  • Gunakan kaedah RunWorkerAsync untuk menjalankan BackgroundWorker secara tidak segerak.

Berikut ialah contoh pelaksanaan BackgroundWorker mudah yang mengemas kini kawalan ProgressBar:

Kod XAML:

<code class="language-xml"><ProgressBar Height="25" Margin="20" Maximum="50" Minimum="0" x:Name="myProgressBar"/></code>
Salin selepas log masuk

Kod belakang:

<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>
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh mencipta BackgroundWorker yang menyepadukan dengan lancar dengan GUI untuk menyediakan kemas kini kemajuan kepada pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan BackgroundWorker dengan Kemas Kini Kemajuan Menggunakan ProgressBar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan