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ý:
|