C# objektinis programavimas, suteikia daug patogių operacijų klasių, dabar šis "StringDictionary" yra klasių rinkinys, kurio specializacija yra eilučių kaip raktų ir reikšmių saugojimas, šios klasės reikšmė yra: C# žino, kad reikšmių tipo eilutė yra gana plačiai naudojama, kiti reikšmių tipai taip pat gali būti konvertuojami į atitinkamus eilučių tipus, tai yra šios kolekcijos reikšmė, tačiau vis tiek galite naudoti kitus kolekcijos objektus, kad ją pakeistumėte, tačiau atkreipkite dėmesį į vieną dalyką, Jei tai yra eilučių saugykla, tai gali sumažinti atminties praradimą ir sutrumpinti programos paleidimo laiką
SyncRoot gali būti naudojamas sinchronizuoti prieigą prie StringDictionary
Tiesiai šviesiai tariant, tai yra užrakto sąvoka, parašykime programą, kad ją išbandytume:
Kodas yra toks:
Vienu metu turime dvi gijas, kad galėtume pridėti duomenis prie "StringDictionary" žodyno,
Vykdymo laiko skirtumas tarp pirmosios ir antrosios gijos yra viena sekundė, kad būtų padidintas laiko skirtumas ir vykdymas nebūtų per greitas.
Matote, kad gijos perėjo prie dviejų metodų, o pridedant antrąjį duomenų gabalą jie laukė, kol bus pridėti pirmieji duomenys prieš pridėdami antruosius duomenis, o papildymo laikas yra labai greitas.
Žemiau parašysime kitaip, kad būtų lengviau suprasti:
Atidaromos 3 gijos, pridedami duomenys, o 3 gijos vykdomos beveik tuo pačiu metu, tačiau pridedant duomenis kiekviena skiriasi 10 sekundžių.
Apibendrinant galima pasakyti, kad kai prieiga prie kelių gijų, galime naudoti "SyncRoot", kad užtikrintume gijų saugumą
|