Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 19029|Отговор: 0

[Източник] C# извършва сигурни операции за преминаване в многонишкова среда

[Копирай линк]
Публикувано в 18.10.2016 г. 13:55:48 ч. | | |

Тази статия използва List като оперативен обект
MSDN официално предоставя декларацията за безопасност на нишките на List:
Този тип публичен статичен член е безопасен по нишки. Въпреки това, нито един член на инстанцията не може да бъде гарантиран, че е безопасен за нишки.
Докато колекцията не се променя, List може да поддържа няколко читателя едновременно. Изброяването през множество не е по същество процес, който е безопасен за нишки. В редките случаи, когато изброяване се конкурира с един или повече достъпа за запис, единственият начин да се запазят нишките в безопасност е да се заключи колекцията за цялото време на изброяването. За да позволите на множество нишки да имат достъп до колекцията за операции по четене и запис, трябва да реализирате собствена синхронизация.
Ако не се синхронизираш?
Ако една нишка извърши операция за изтриване, а нишка извършва операция за преминаване, тогава по време на процеса на преминаване колекцията се променя, което ще доведе до появата на изключение InvalidOperationException, което подканва: колекцията е модифицирана; Операциите по изброяване не могат да се извършват.
Как да се синхронизира, за да се гарантира сигурността на преминаването
Критични зони, мютекси се използват тук за осигуряване на процеса на преминаване на нишки, примерният код е следният:






Предишен:Решение на грешката с подписа jssdk на официалния WeChat акаунт под China Unicom
Следващ:asp.net Глобална обработка на изключения и логове на изключения в MVC
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com