Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація інтерфейсу IComparer

Реферат Реалізація інтерфейсу IComparer





[2] lt; TKey, TValue gt;

Безпечна відносно потоків колекція ключів і значень. Для доступу до членів в Неблокуючий режимі служать методи TryAdd (), TryGetValue (), TryRemove () і TryUpdate (). Оскільки елементи засновані на ключах і значеннях, ConcurrentDictionary lt; TKey, TValue gt; не реалізує інтерфейс IProducerConsumerCollection lt; T gt ;. [2]. Ці колекції безпечні до потоків в тому сенсі, що повертають false, якщо якась дія над ними неможливо при поточному стані потоків. Перш ніж робити якісь подальші дії, завжди слід перевіряти успішність додавання або вилучення елементів. Повністю довіряти колекції рішення задачі можна. [2] lt; T gt;

Колекція, яка здійснює блокування і очікує, поки не з'явиться можливість виконати дію по додаванню або витяганню елемента. BlockingCollection lt; T gt; пропонує інтерфейс для додавання і вилучення елементів методами Add () і Take (). Ці методи блокують потік і потім очікують, поки не з'явиться можливість виконати завдання. [2]

Метод Add () має перевантаження, якою можна також передати CancellationToken. Ця лексема завжди скасовує блокуючий виклик. Якщо не потрібно, щоб потік очікував нескінченний час, без скасування виклику, доступні також методи TryAdd () і TryTake (). У них можна вказати значення таймауту - максимального періоду часу, протягом якого ви готові блокувати потік і чекати, поки виклик не дасть збій. [2]

. Спеціальні і спостережувані колекції


. 1 Спеціальні колекції


У середовищі .NET Framework передбачено ряд спеціальних колекцій, оптимізованих для роботи з даними конкретного типу або для їх обработкі особливим чином. Класи цих неузагальнених колекцій визначені в просторі імен System.Collections.Specialized і перераховані в таблиці 5. [3]


Таблиця 5 - Спеціальні колекції C #

Клас спеціальної коллекцііОпісаніеCollectionsUtilСодержіт фабричні методи для створення коллекційHybridDictionaryПредназначен для колекцій, в яких для зберігання невеликої кількості пар ключ-значення використовується клас ListDictionary. При перевищенні колекцією певного розміру автоматично використовується клас Hashtable для зберігання її елементовListDictionaryПредназначен для колекцій, в яких для зберігання пар ключ-значення використовується зв'язний список. Такі колекції рекомендуються тільки для зберігання невеликої кількості елементовNameValueCollectionПредназначен для відсортованих колекцій, в яких зберігаються пари ключ-значення raquo ;, причому і ключ, і значення відносяться до типу stringOrderedDictionaryПредназначен для колекцій, в яких зберігаються індексовані пари ключ-значення StringCollectionПредназначен для колекцій, оптимізованих для зберігання символьних строкStringDictionaryПредназначен для хеш-таблиць, в яких зберігаються пари ключ-значення raquo ;, причому і ключ, і значення відносяться до типу string

Крім того, в просторі імен System.Collections визначено три базових абстрактних класу: CollectionBase, ReadOnlyCollectionBase і DictionaryBase. Ці класи можуть успадковуватися і служити в якості відправної точки для розробки власних спеціальних колекцій. [2]

5.2 Спостережувані колекції


У разі якщо потрібна інформація про те, коли елементи колекції видаляються або додаються, можна використовувати клас ObservableCollection lt; T gt ;. Цей клас був визначений для WPF і призначений для того, щоб користувальницький інтерфейс міг отримувати інформацію про зміни колекції. З цієї причини він включений в збірку WindowsBase, отже, на неї необхідно послатися. Простір імен цього класу - System.Collections.ObjectModel. [2]

Клас ObservableCollection lt; T gt; успадкований від базового класу Collection lt; T gt ;, який може застосовуватися для створення спеціальних колекцій; він використовує всередині себе List lt; T gt ;. Методи базового класу SetItem () і RemoveItem () перевизначені для ініціації події CollectionChanged. Клієнти цього класу можуть реєструватися на цю подію, використовуючи інтерфейс INotifyCollectionChanged.

У наступному прикладі показано застосування ObservableCollection lt; string gt ;, при цьому метод Data_CollectionChanged реєструється на подію CollectionChanged.

Два елементи додаються в кінець колекції, потім ще один вставляється і один віддаляється:

data=new ObservableCollection lt; string gt; () ;. CollectionChanged +=Data_CollectionChanged; .Add ( One ) ;. Add ( Two ) ;. Insert (1, Three raquo ;);

data.Remove ( One );


Метод Data_CollectionChanged приймає аргумент NotifyCollection Changed EventArgs, що містить інформацію п...


Назад | сторінка 12 з 21 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Збір трав'янистих рослин, комах ентомологичеськой колекції, тварин коле ...
  • Реферат на тему: Принципи формування архівних колекцій
  • Реферат на тему: Створення колекції одягу для промо-акцій "Завжди на зв'язку!" ...
  • Реферат на тему: Створення колекції моделей зачісок &Модний стиль&
  • Реферат на тему: Розробка колекції одягу