Класс System::Collections::Concurrent::ConcurrentDictionary

ConcurrentDictionary class

Потокобезопасная реализация словаря. Объекты этого класса должны создаваться только с помощью функции System::MakeObject(). Никогда не создавайте экземпляр этого типа в стеке или с помощью оператора new, так как это приведёт к ошибкам выполнения и/или сбоям утверждений. Всегда оборачивайте этот класс в указатель System::SmartPtr и используйте этот указатель для передачи его в функции в качестве аргумента.

template<class TKey,class TValue>class ConcurrentDictionary : public System::Collections::Generic::Dictionary<TKey, TValue>
ПараметрОписание
TKeyТип ключа.
TValueТип значения.

Методы

МетодОписание
Add(const TKey&, const TValue&) overrideДобавляет значение в словарь.
Clear() overrideУдаляет все элементы в контейнере.
CopyTo(ArrayPtr<System::Collections::Generic::KeyValuePair<TKey, TValue>>, int) overrideКопирует элементы контейнера в существующие элементы массива.
get_KeysInternal() const overrideПолучает обёрнутую коллекцию для доступа к ключам словаря.
idx_set(const TKey&, TValue) overrideИнформация RTTI.
Remove(const TKey&) overrideУдаляет элемент из контейнера.
TryAdd(const TKey&, const TValue&)Пытается добавить пару ключ/значение в словарь.

Typedefs

Определение типаОписание
BaseTypeТип реализации.
ThisTypeЭтот тип.

Примечания

#include <system/collections/concurrent/concurrent_dictionary.h>
#include <system/smart_ptr.h>

using namespace System;
using namespace System::Collections::Generic;

int main()
{
  const int itemsCount = 32;

  // Создаёт экземпляр класса ConcurrentDictionary.
  auto concurrentDictionary = MakeObject<ConcurrentDictionary<int, int>>();

  // Заполняет потокобезопасный словарь.
  for (auto i = 0; i < itemsCount; ++i)
  {
    concurrentDictionary->Add(i, i * i);
  }

  Console::WriteLine(concurrentDictionary->idx_get(3));

  return 0;
}
/*
This code example produces the following output:
9
*/

См. также