Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19029|Odpoveď: 0

[Zdroj] C# vykonáva bezpečné operácie prechádzania v viacvláknovom prostredí

[Kopírovať odkaz]
Zverejnené 18. 10. 2016 13:55:48 | | |

Tento článok používa List ako operačný objekt
MSDN oficiálne uvádza bezpečnostné vyhlásenie vlákna o Liste:
Tento typ verejného statického člena je bezpečný pre vlákna. Avšak žiadny člen inštancie nemôže byť zaručene bezpečný pre vlákna.
Pokiaľ nie je kolekcia upravovaná, List môže podporovať viacero čitateľov súčasne. Enumerácia cez množinu nie je inherentne bezpečný proces pre vlákna. V zriedkavých prípadoch, keď enumerácia konkuruje jednému alebo viacerým zápisovým prístupom, jediný spôsob, ako ochrániť vlákna, je uzamknúť kolekciu na celú dobu enumerácie. Aby ste umožnili viacerým vláknam prístup k kolekcii pre operácie čítania a zápisu, musíte implementovať vlastnú synchronizáciu.
Ak sa nesynchronizujete?
Ak jedno vlákno vykoná operáciu vymazania a vlákno vykoná operáciu prechádzania, počas procesu prechádzania sa kolekcia upraví, čo spôsobí vznik výnimky InvalidOperationException, ktorá vyvolá: kolekcia bola upravená; Enumeračné operácie sa nesmú vykonávať.
Ako synchronizovať, aby ste zabezpečili bezpečnosť pohybu
Kritické zóny, mutexy sa tu používajú na zabezpečenie procesu prechádzania vláknami, príklad kódu je nasledovný:






Predchádzajúci:Riešenie chyby jssdk podpisu oficiálneho účtu WeChat pod China Unicom
Budúci:asp.net MVC globálne spracovanie výnimiek a záznamy výnimiek
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com