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

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

[Източник] Използване на SyncRoot в StringDictionary

[Копирай линк]
Публикувано в 23.11.2016 г. 14:26:38 ч. | | | |

C# обектно-ориентираното програмиране предоставя много удобни за потребителя класове за операции, този StringDictionary е колекция от класове, специализирани в съхраняването на низове като ключове и стойности, значението на този клас е: C# знае, че низът в типа стойност е доста широко използван, други типове стойности също могат да се конвертират в съответните типове низове, това е значението на тази колекция, но все пак можете да използвате други колекция обекти за нейно замяне, но обърнете внимание на една точка, Ако е съхранение на низове, това може да намали загубата на памет и да намали времето за изпълнение на програмата


SyncRoot може да се използва за синхронизиране на достъпа до StringDictionary

Накратко, това е концепцията за заключване, нека напишем програма, която да я тества:

Кодът е следният:



Имаме две нишки едновременно, за да добавяме данни към речника на StringDictionary,

Разликата във времето за изпълнение между първата и втората нишка е една секунда, за да се увеличи разликата във времето и да се предотврати прекалено бързо изпълнение.

Виждате, че нишките са преминали към двата метода и при добавяне на втория елемент данни, те са чакали първото да бъде добавено преди добавянето на вторите, а времето за събиране е много бързо.

По-долу ще го напишем по различен начин, за да е по-лесно за разбиране:





Отварят се 3 нишки, данните се добавят, като трите нишки се изпълняват почти едновременно, но когато данните се добавят, всяка е на 10 секунди разстояние.

В обобщение, при многонишков достъп можем да използваме SyncRoot, за да гарантираме сигурност на нишките




Предишен:Как да използвам WPF Trigger за смяна на бутони
Следващ:c# Използвайте OCR за разпознаване на китайски изображения
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com