Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 21695|Jawab: 1

[Sumber] .net/c# Berhati-hatilah dengan peristiwa yang menyeret program Anda

[Salin tautan]
Diposting pada 21/09/2016 16.05.58 | | | |
Peristiwa dimuat dan dijalankan pada utas utama, dan jika peristiwa pertama pada utas utama belum selesai, Anda datang ke peristiwa kedua, sama seperti program lain di utas utama, tunggu hingga yang sebelumnya selesai diproses sebelum memproses program atau peristiwa berikutnya atau lainnya di utas utama.




Di atas adalah, saya merangkum sebuah objek sendiri, dan dalam objek itu, saya merangkum sebuah peristiwa sendiri.

Saya memproses data dalam metode berlangganan peristiwa, seperti bagian anotasi gambar,

Karena peristiwa yang saya langgani adalah file txt baca, dan file txt saya memiliki 50.000 baris, menyebabkan metode peristiwa dipicu 50.000 kali.

Kemudian, ketika saya menjalankan program, saya menemukan bahwa antarmuka saya dalam keadaan animasi yang ditangguhkan, dan saya tahu bahwa pasti ada masalah di sana.

Awalnya saya mengira itu adalah manipulasi kontrol UI dalam metode yang menyebabkan kematian palsu.

Kemudian, selangkah demi selangkah, ditemukan bahwa saat menambahkan data ke set, itu sudah memasuki status animasi yang ditangguhkan.

Mengapa??? Akhirnya, saya mengetahui dari internet bahwa acara tersebut ada di utas utama, dan jika acara pertama tidak diproses, itu akan memblokir eksekusi acara berikutnya,

Saya umumnya mengerti apa yang saya perintahkan, terus terang, 50.000 peristiwa menyebabkan program diblokir, dan kemudian saya memasuki keadaan animasi yang ditangguhkan.

Larutan:

Untuk beberapa peristiwa sederhana, yang tidak akan mengarah pada eksekusi sejumlah besar metode peristiwa, dapat ditulis langsung ke dalam metode peristiwa.

Untuk sejumlah besar metode peristiwa yang dipanggil, saya harap Anda akan membuka utas untuk menanganinya, seperti: socket atau httplistener, dll. (jumlah datanya kecil dan Anda tidak dapat melihatnya, setelah jumlah data besar, haha, itu akan langsung mati)




Mantan:C# menghasilkan kode alamat email secara massal
Depan:Analisis pemutar siaran cloud, analisis antarmuka angin puyuh Thunderbolt dan QQ
Diposting pada 22/09/2016 09.23.17 |
Seseorang memposting dengan sangat baik, dukungan
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com