|
Ketika kita membuat aplikasi formulir, terkadang kita perlu mendapatkan informasi tentang formulir saat ini atau memanggil kontrol formulir lain. Di sini saya memperkenalkan dua metode untuk mencapai ini.
Saat kita perlu memanggil kontrol dari formulir lain dalam formulir, kita dapat menggunakan kontrol. CheckForIllegaCrossThreadCalls=false; Misalnya: Button.CheckForIllegalCrossThreadCalls=false; Tentu saja, kita juga bisa membuat seluruh formulir berulir silang Form.CheckForIllegalCrossThreadCalls=false; Ini memungkinkan kita untuk mengakses kontrol atau properti formulir ini dalam bentuk lain. Ini mungkin bukan metode yang paling aman, dan terkadang debugging akan memberi kita kesalahan.
Di sini saya akan memperkenalkan metode lain yang dapat diakses di seluruh utas. Invoke melompat ke utas formulir untuk menjalankan fungsi pada delegasi
Pertama, kita perlu mendeklarasikan komisi. delegasi publik void DelSetTime(objek str); Kemudian kita hanya perlu menyiapkan fungsi yang perlu dieksekusi, public void setTime(objek str); Sekarang kita dapat menempatkan delegasi pada utas formulir untuk dieksekusi Delegasi d=baru DelsetTime(setTime); ini. Invoke(d,Datetime.Now.ToString()); Dengan cara ini kita dapat mencapai akses lintas utas.
Setiap formulir memiliki utas formulir, yang terutama bertanggung jawab untuk menyelesaikan gambar formulir dan kontrol formulir Utas ini kita sebut utas formulir atau utas utama. Sering kali kita perlu menambahkan utas ke formulir untuk memproses data, dan kemudian kita dapat mengatur utas yang baru dibuat ini sebagai utas latar belakang saat formulir ditutup Utas juga akan berakhir. ThreadStart ths=ThreadStart(Demo) baru; Thread th = Thread baru (ths); th. Mulai(); th. IsBackground=true;
Asli: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|