Panduan Kemas Kini Keselamatan Benang GUI C#
Mengemas kini GUI daripada urutan latar belakang adalah masalah rumit. Percubaan untuk berbuat demikian secara langsung boleh mengakibatkan tingkah laku yang luar biasa atau tidak dijangka.
1 Segerakan BackgroundWorker dan konfigurasikan pengendali acaranya.
<code class="language-csharp">private BackgroundWorker _backgroundWorker; _backgroundWorker = new BackgroundWorker(); _backgroundWorker.DoWork += backgroundWorker_DoWork; _backgroundWorker.ProgressChanged += backgroundWorker_ProgressChanged; _backgroundWorker.WorkerReportsProgress = true;</code>
2. Tugas latar belakang: Dalam pengendali acara DoWork, laksanakan tugasan yang berjalan lama dan laporkan kemajuan secara berkala.
<code class="language-csharp">public void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { // ... 执行你的任务 object param = "一些数据"; _backgroundWorker.ReportProgress(0, param); }</code>
3. Laporan kemajuan: Dalam pengendali acara ProgressChanged, kemas kini GUI dengan kemajuan yang dilaporkan.
<code class="language-csharp">private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { // 使用e.ProgressPercentage和e.UserState更新UI }</code>
4. Mulakan tugas latar belakang: Panggil RunWorkerAsync untuk memulakan tugas latar belakang.
<code class="language-csharp">_backgroundWorker.RunWorkerAsync();</code>
5. Penjadualan berterusan (pilihan): Jika anda perlu mengulangi tugas dengan kerap, anda boleh menambah kod berikut dalam pengendali acara RunWorkerCompleted.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini GUI dengan Selamat dari Benang Latar Belakang dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!