Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19029|Răspunde: 0

[Sursă] C# efectuează operații de traversare securizată într-un mediu multi-threaded

[Copiază linkul]
Postat pe 18.10.2016 13:55:48 | | |

Acest articol folosește List ca obiect operațional
MSDN oferă oficial declarația de siguranță a firului de discuție a listei:
Acest tip de membru static public este sigur pentru thread-uri. Totuși, niciun membru de instanță nu poate fi garantat ca fiind sigur pentru thread-uri.
Atâta timp cât colecția nu este modificată, List poate suporta mai mulți cititori simultan. Enumerarea printr-un set nu este în mod inerent un proces sigur pentru fire. În cazul rar în care o enumerare concurează cu una sau mai multe accesări de scriere, singura modalitate de a păstra firele în siguranță este blocarea colecției pe toată durata enumerării. Pentru a permite mai multor fire să acceseze colecția pentru operații de citire și scriere, trebuie să implementați propria sincronizare.
Dacă nu sincronizezi?
Dacă un fir efectuează o operație de ștergere și un alt fir efectuează o operație de traversare, atunci în timpul procesului de traversare, colecția este modificată, ceea ce va determina apariția unei excepții InvalidOperationException, care indică: colecția a fost modificată; Operațiunile de enumerare nu pot fi efectuate.
Cum să sincronizezi pentru a asigura siguranța traversării
Zonele critice, mutex-urile sunt folosite aici pentru a securiza procesul de traversare a firului, codul exemplu fiind următorul:






Precedent:Soluția erorii de semnătură jssdk a contului oficial WeChat sub China Unicom
Următor:asp.net Gestionarea globală a excepțiilor MVC și jurnalele excepțiilor
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com