System::Collections::Concurrent::ConcurrentDictionary classe

ConcurrentDictionary class

Implementazione di dizionario thread-safe. Gli oggetti di questa classe dovrebbero essere allocati solo usando la funzione System::MakeObject(). Non creare mai un’istanza di questo tipo sullo stack o usando l’operatore new, poiché ciò provocherà errori di runtime e/o fault di asserzione. Avvolgi sempre questa classe in un puntatore System::SmartPtr e usa questo puntatore per passarlo alle funzioni come argomento.

template<class TKey,class TValue>class ConcurrentDictionary : public System::Collections::Generic::Dictionary<TKey, TValue>
ParametroDescrizione
TKeyTipo di chiave.
TValueTipo valore.

Metodi

MetodoDescrizione
Add(const TKey&, const TValue&) overrideAggiunge un valore nel dizionario.
Clear() overrideElimina tutti gli elementi nel contenitore.
CopyTo(ArrayPtr<System::Collections::Generic::KeyValuePair<TKey, TValue>>, int) overrideCopia gli elementi del contenitore in elementi di un array esistente.
get_KeysInternal() const overrideOttiene la collezione wrapper per accedere alle chiavi del dizionario.
idx_set(const TKey&, TValue) overrideInformazioni RTTI.
Remove(const TKey&) overrideRimuove l’elemento dal contenitore.
TryAdd(const TKey&, const TValue&)Prova ad aggiungere una coppia chiave/valore nel dizionario.

Typedefs

TypedefDescrizione
BaseTypeTipo di implementazione.
ThisTypeQuesto tipo.

Osservazioni

#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;

  // Crea l'istanza della classe ConcurrentDictionary.
  auto concurrentDictionary = MakeObject<ConcurrentDictionary<int, int>>();

  // Riempie il dizionario concorrente.
  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
*/

Vedi anche