Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19029|Antwoord: 0

[Bron] C# voert veilige traversaloperaties uit in een multithreaded omgeving

[Link kopiëren]
Geplaatst op 18-10-2016 13:55:48 | | |

Dit artikel gebruikt List als operatieobject
MSDN geeft officieel de veiligheidsverklaring van de thread List:
Dit type publieke statische lid is thread-veilig. Echter, geen enkel instance member kan gegarandeerd thread-veilig zijn.
Zolang de collectie niet wordt gewijzigd, kan List meerdere lezers tegelijk ondersteunen. Het opsommen door een verzameling is niet per definitie een draadveilig proces. In het zeldzame geval dat een enumeratie concurreert met één of meer schrijftoegangen, is de enige manier om threads veilig te houden het vergrendelen van de collectie gedurende de volledige duur van de enumeratie. Om meerdere threads toegang te geven tot de collectie voor lees- en schrijfoperaties, moet je je eigen synchronisatie implementeren.
Als je niet synchroniseert?
Als één thread een verwijderingsoperatie uitvoert en een thread een doorloopoperatie, wordt tijdens het doorloopproces de verzameling gewijzigd, waardoor een InvalidOperationException-uitzondering verschijnt, met de vraag: de verzameling is gewijzigd; Enumeratiebewerkingen mogen niet worden uitgevoerd.
Hoe synchroniseren om de veiligheid van doorgang te waarborgen
Kritieke zones en mutexen worden hier gebruikt om het thread-traverseringsproces te beveiligen, de voorbeeldcode is als volgt:






Vorig:Oplossing voor de jssdk-handtekeningfout van het officiële WeChat-account onder China Unicom
Volgend:asp.net MVC globale uitzonderingsafhandeling en uitzonderinglogs
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com