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: 19792|Răspunde: 0

[Sursă] Utilizarea SyncRoot în StringDictionary

[Copiază linkul]
Postat pe 23.11.2016 14:26:38 | | | |

Programarea orientată pe obiecte C# oferă multe clase de operații prietenoase cu utilizatorul, acest StringDictionary este o colecție de clase specializate în stocarea șirurilor de șir ca chei și valori, semnificația acestei clase este: C# știe că șirul din tipul de valoare este destul de larg folosit, alte tipuri de valori pot fi de asemenea convertite în tipuri corespunzătoare de șiruri, acesta este sensul acestei colecții, dar poți folosi în continuare alte obiecte de colecție pentru a o înlocui, dar acordă atenție unui punct, Dacă este stocare în șiruri, acest lucru poate reduce pierderea memoriei și timpul necesar pentru rularea programului


SyncRoot poate fi folosit pentru a sincroniza accesul la StringDictionary

Ca să fiu direct, este conceptul de blocare, hai să scriem un program pentru a-l testa:

Codul este următorul:



Avem două fire în același timp pentru a adăuga date în dicționarul StringDictionary,

Diferența de timp de execuție între primul fir și al doilea fir este de o secundă, pentru a lărgi diferența de timp și a preveni ca execuția să fie prea rapidă.

Poți vedea că firele de execuție au mers la cele două metode, iar când adaugă a doua bucată de date, au așteptat ca primele date să fie adăugate înainte de a adăuga a doua dată, iar timpul de adunare este foarte rapid.

Mai jos, o vom scrie într-un mod diferit pentru a o face mai ușor de înțeles:





Se deschid 3 fire, se adaugă datele, iar cele 3 fire sunt executate aproape simultan, dar când datele sunt adăugate, fiecare este la 10 secunde distanță.

În concluzie, când avem acces multithread, putem folosi SyncRoot pentru a asigura securitatea firelor




Precedent:Cum să folosești WPF Trigger pentru a schimba butoanele
Următor:c# Folosește OCR pentru a recunoaște imaginile chinezești
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