Penggunaan BackgroundWorker dan ProgressBar yang Berkesan dalam WPF
Panduan ini menggariskan pelaksanaan yang betul BackgroundWorker
untuk mengemas kini ProgressBar
dalam aplikasi WPF anda. Pelaporan kemajuan yang tepat adalah kunci kepada pengalaman pengguna yang responsif.
Persediaan Penting:
Sebelum anda bermula, pastikan WorkerReportsProgress
harta BackgroundWorker
anda ditetapkan kepada true
. Ini membolehkan kemas kini kemajuan.
Dalam DoWork
Pengendali Acara:
ReportProgress
secara berkala semasa operasi jangka panjang untuk memberikan maklum balas berterusan. Laporkan kemajuan pada selang masa yang logik, bukan hanya pada akhir tugasan.Mengendalikan Kemas Kini Kemajuan (ProgressChanged
Pengendali Acara):
ProgressChanged
dilaksanakan pada urutan UI, membenarkan manipulasi langsung elemen UI seperti ProgressBar
.ProgressBar
Value
menggunakan nilai e.ProgressPercentage
yang diterima daripada BackgroundWorker
.<code class="language-C#">private void ProgressChanged(object sender, ProgressChangedEventArgs e) { // Update the ProgressBar on the UI thread progressBar.Value = e.ProgressPercentage; }</code>
Kelas Tetingkap Utama (Benang UI):
BackgroundWorker
.RunWorkerAsync()
.ProgressChanged
untuk mengendalikan kemas kini kemajuan pada urutan UI.Contoh Ilustrasi:
<code class="language-C#">public partial class MainWindow : Window { BackgroundWorker bw = new BackgroundWorker(); public MainWindow() { InitializeComponent(); // Assuming you have a ProgressBar named 'progressBar' bw.WorkerReportsProgress = true; bw.ProgressChanged += ProgressChanged; bw.DoWork += DoWork; bw.RunWorkerAsync(); } private void ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar.Value = e.ProgressPercentage; } private void DoWork(object sender, DoWorkEventArgs e) { // Simulate a long-running task for (int i = 0; i < 100; i++) { Thread.Sleep(50); // Simulate work bw.ReportProgress(i); } } }</code>
Dengan mengikuti langkah ini, anda boleh menyepadukan BackgroundWorker
dengan kemas kini ProgressBar
dalam aplikasi WPF anda dengan lancar, memastikan antara muka pengguna yang lancar dan responsif.
Atas ialah kandungan terperinci Bagaimana Menggunakan BackgroundWorker dengan Kemas Kini Bar Kemajuan dalam WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!