Elakkan keabnormalan akses Cross -Threaded: Kawalan akses benang yang berbeza
Dalam aplikasi Windows Windows, operasi silang -threading merujuk kepada mengakses kawalan UI dari benang lain. Ini akan membawa kepada "operasi silang yang tidak sah: kawalan kawalan akses benang dari benang kawalan penciptaan". Untuk menyelesaikan masalah ini, aplikasi hanya perlu mengakses kawalan UI dari penciptaan benang mereka.
Anggapkan bahawa tugas pemprosesan data dipindahkan ke benang latar belakang untuk mengelakkan tindak balas UI yang membosankan. Walau bagaimanapun, akses kepada kawalan UI dari benang tambahan boleh mencetuskan keabnormalan di atas.
Untuk menyelesaikan masalah ini, anda boleh menggunakan sifat
InvokeRequired untuk menentukan sama ada akses itu merentasi benang. Jika
Pelan 1:
Rancangan 2:
<code class="language-csharp">UserControl1_LoadDataMethod() { string name = ""; if (textbox1.InvokeRequired) { textbox1.Invoke(new MethodInvoker(delegate { name = textbox1.Text; })); } if (name == "MyName") { // 加载“MyName”的数据 // 为以后的绑定填充全局变量 List<string> } }</code>
Atas ialah kandungan terperinci Bagaimana untuk mengelakkan pengecualian 'silang-thread tidak sah' dalam bentuk Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!