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

Melihat: 19029|Jawab: 0

[Sumber] C# melakukan operasi traversal aman di lingkungan multi-thread

[Salin tautan]
Diposting pada 18/10/2016 13.55.48 | | |

Artikel ini menggunakan List sebagai objek operasi
MSDN secara resmi memberikan pernyataan keamanan utas Daftar:
Jenis anggota statis publik ini aman untuk utas. Namun, tidak ada anggota instans yang dapat dijamin aman untuk utas.
Selama koleksi tidak dimodifikasi, List dapat mendukung banyak pembaca secara bersamaan. Menghitung melalui satu himpunan pada dasarnya bukan proses yang aman untuk utas. Dalam kasus yang jarang terjadi di mana pencacahan bersaing dengan satu atau beberapa akses tulis, satu-satunya cara untuk menjaga keamanan utas adalah dengan mengunci koleksi selama durasi pencacahan. Untuk mengizinkan beberapa utas mengakses koleksi untuk operasi baca dan tulis, Anda harus menerapkan sinkronisasi Anda sendiri.
Jika Anda tidak menyinkronkan?
Jika satu utas melakukan operasi penghapusan dan utas melakukan operasi traversal, maka selama proses traversal, koleksi dimodifikasi, yang akan menyebabkan pengecualian InvalidOperationException muncul, meminta: koleksi telah dimodifikasi; Operasi pencacahan mungkin tidak dilakukan.
Cara menyinkronkan untuk memastikan keamanan traversal
Zona kritis, mutex digunakan di sini untuk mengamankan proses lintasan utas, kode contoh adalah sebagai berikut:






Mantan:Solusi untuk kesalahan tanda tangan jssdk akun resmi WeChat di bawah China Unicom
Depan:asp.net Penanganan pengecualian global MVC dan log pengecualian
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