C# objektorienteret programmering tilbyder mange brugervenlige operationsklasser, denne StringDictionary er en samling af klasser, der specialiserer sig i at gemme strenge som nøgler og værdier, betydningen af denne klasse er: C# ved, at strengen i værditypen er ret udbredt, andre værdityper kan også konverteres til tilsvarende strengtyper, dette er betydningen af denne samling, men du kan stadig bruge andre samlingsobjekter til at erstatte den, men vær opmærksom på ét punkt, Hvis det er strenglagring, kan dette reducere hukommelsestab og den tid, det tager at køre programmet
SyncRoot kan bruges til at synkronisere adgang til StringDictionary
For at sige det ligeud, det er konceptet lock, lad os skrive et program til at teste det:
Koden er som følger:
Vi har to tråde samtidig til at tilføje data til StringDictionary-ordbogen,
Forskellen i eksekveringstid mellem den første og den anden tråd er ét sekund for at udvide tidsforskellen og forhindre, at eksekveringen bliver for hurtig.
Du kan se, at trådene er gået til de to metoder, og når man tilføjer det andet datastykke, har de ventet på, at de første data bliver tilføjet, før de tilføjer de andet, og tilføjelsestiden er meget hurtig.
Nedenfor vil vi skrive det på en anden måde for at gøre det lettere at forstå:
3 tråde åbnes, og dataene lægges sammen, og de 3 tråde udføres næsten samtidig, men når dataene tilføjes, er hver tråd 10 sekunder fra hinanden.
Sammenfattende kan vi, når vi har multitrådet adgang, bruge SyncRoot for at sikre trådsikkerheden
|