Dalam aplikasi WPF, tugasan yang mungkin menyekat urutan UI harus dilaksanakan di latar belakang. Apabila memilih pendekatan yang sesuai, pertimbangkan faktor seperti penyekatan rangkaian, pelaporan kemajuan, pembatalan dan sokongan berbilang benang.
Dengan .NET 4.5 atau lebih baru (atau .NET 4.0 dengan Microsoft.Bcl.Async), API berasaskan Tugas menggunakan async/menunggu menawarkan penyelesaian optimum untuk pelaksanaan latar belakang. Ia membolehkan pengalaman pengekodan yang mudah dan tersusun.
Kod berikut menunjukkan contoh penggunaan async/menunggu untuk melaksanakan tugas di latar belakang:
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); } }
Kod ini mencipta tugas yang berjalan di latar belakang, membenarkan pelaporan kemajuan melalui pembolehubah kemajuan dan pembatalan melalui CancellationTokenSource (bukan ditunjukkan).
Untuk maklumat lanjut dan pemahaman yang mendalam:
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tugas Latar Belakang dalam WPF dengan Pelaporan Kemajuan dan Pembatalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!