Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 19029|Odpověď: 0

[Zdroj] C# provádí bezpečné operace procházení v vícevláknovém prostředí

[Kopírovat odkaz]
Zveřejněno 18.10.2016 13:55:48 | | |

Tento článek používá List jako operační objekt
MSDN oficiálně uvádí bezpečnostní prohlášení vlákna List:
Tento typ veřejného statického člena je bezpečný pro vlákna. Nicméně žádný člen instance nemůže být zaručen jako bezpečný pro vlákna.
Pokud není sbírka upravována, může List podporovat více čtenářů současně. Enumerace skrze množinu není sama o sobě proces bezpečný pro vlákna. V ojedinělém případě, kdy výčet soupeří s jedním nebo více zápisovými přístupy, je jediným způsobem, jak udržet vlákna v bezpečí, uzamknout sbírku na celou dobu trvání výčtu. Aby více vláken mohlo přistupovat ke sbírce pro čtení a zápis, musíte implementovat vlastní synchronizaci.
Pokud se nesynchronizujete?
Pokud jedno vlákno provede operaci mazání a druhé procházející operaci, během procesu procházení je kolekce upravena, což způsobí vznik výjimky InvalidOperationException s výzvou: kolekce byla upravena; Enumerační operace nelze provádět.
Jak synchronizovat pro zajištění bezpečnosti pohybu
Kritické zóny, mutexe se zde používají k zabezpečení procesu procházení vláknem, ukázkový kód je následující:






Předchozí:Řešení chyby podpisu jssdk oficiálního účtu WeChat pod čínským Unicomem
Další:asp.net Globální zpracování výjimek a logy výjimek v MVC
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com