Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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