Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 19029|Odgovoriti: 0

[Vir] C# izvaja varne operacije prečkanja v večnitnem okolju

[Kopiraj povezavo]
Objavljeno na 18. 10. 2016 13:55:48 | | |

Ta članek uporablja List kot operacijski objekt
MSDN uradno navaja varnostno izjavo o temi List:
Ta vrsta javnega statičnega člana je varna za niti (thread-safe). Vendar pa noben član instance ni zagotovljen za varnost niti (thread-safe).
Dokler zbirka ni spremenjena, lahko List podpira več bralcev hkrati. Enumeracija skozi množico ni po naravi varen proces za niti (thread-ware). V redkih primerih, ko enumeracija tekmuje z enim ali več zapisnimi dostopi, je edini način, da se niti zaščitijo, ta, da se zbirka zaklene za celotno trajanje naštevanja. Da bi več niti lahko dostopalo do zbirke za operacije branja in pisanja, morate implementirati lastno sinhronizacijo.
Če ne sinhroniziraš?
Če ena nit izvede operacijo brisanja, druga pa operacijo prehoda, se med procesom prehoda zbirka spremeni, kar povzroči pojav izjeme InvalidOperationException, ki sproži: zbirka je bila spremenjena; Enumeracijske operacije niso dovoljene izvajati.
Kako se sinhronizirati za zagotovitev varnosti premikanja
Kritične cone, mutexi, se tukaj uporabljajo za zaščito procesa prehoda niti, primer kode je naslednji:






Prejšnji:Rešitev za napako podpisa jssdk uradnega WeChat računa pod China Unicom
Naslednji:asp.net MVC globalno obravnavo izjem in dnevniki izjem
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com