Pastikan UI WinForms anda responsif semasa proses yang panjang
Aplikasi WinForms boleh menjadi tidak bertindak balas jika operasi jangka panjang mengikat benang utama. Ini berlaku apabila benang utama disekat oleh gelung yang luas atau panggilan perkhidmatan luaran.penyelesaiannya? Muat turun tugas-tugas yang memakan masa ini ke benang latar belakang, membebaskan benang utama untuk memastikan UI responsif. Inilah caranya:
Menggunakan kolam thread:
ThreadPool.QueueUserWorkItem()
dalam .net 4.0 dan kemudian). Task.Factory.StartNew()
Task.Run()
Komponen Latar Belakang Kerja:
BackgroundWorker
DoWork
BackgroundWorker
Pengurusan Thread Manual (Secara amnya mengelakkan):
Thread
Nota penting: tidak pernah mengemas kini GUI secara langsung dari benang latar belakang. Sentiasa kemas kini marshal kembali ke benang UI utama menggunakan atau semak Invoke()
sebelum mengemas kini elemen UI. InvokeRequired()
Atas ialah kandungan terperinci Bagaimanakah saya dapat menghalang hangups UI dalam WinForms semasa operasi jangka panjang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!