penutupan tingkap yang elegan dengan acara latar belakang acara
Apabila tetingkap memulakan pengerjaan latar belakang UI tetingkap kemas kini, menutup tetingkap tanpa menghadapi kunci yang tidak normal atau mati mungkin menjadi rumit. Masalah ini menyoroti cabaran yang dihadapi ketika cuba menghentikan Latar Belakang Kerja dalam kejadian penutupan tingkap.
<:> Soalan:
menggunakan
untuk membatalkan pekerja latar belakang dalam handleclosingevent boleh menyebabkanbgWorker.CancelAsync()
Invoke()
Dalam handleclosingevent, menunggu pekerja latar belakang selesai, ia akan menyebabkan kunci mati, kerana ObjectDisposedException
tidak akan kembali. Invoke()
Penyelesaian: Mengelakkan kunci mati dan kaedah keselamatan yang tidak normal adalah untuk membatalkan peristiwa formclosing itu sendiri. Langkah -langkah berikut menggariskan penyelesaian:
Tentukan logo untuk menjejaki permintaan penutupan pengguna.Di sampul , periksa sama ada pekerja latar belakang sibuk.
closePending
kepada benar, membatalkan pekerja latar belakang, dan tetapkan OnFormClosing
Dalam program pemprosesan acara closePending
e.Cancel = true
Selepas mematikan operasi, tetapkan semula logo RunWorkerCompleted
closePending
Kod Contoh: closePending
Atas ialah kandungan terperinci Bagaimana cara dengan anggun menutup borang dengan pekerja latar belakang yang aktif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!