Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Proprietà Hashtable.IsSynchronized

Ottiene un valore che indica se accesso a Hashtable è sincronizzato (thread-safe).

Spazio dei nomi:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)
public virtual bool IsSynchronized { get; }

Valore proprietà

Tipo: System.Boolean
true se accesso a Hashtable è sincronizzato (thread-safe); in caso contrario, false. l'impostazione predefinita è false.

Implementa

ICollection.IsSynchronized

In Hashtable può supportare un writer e i reader multipli contemporaneamente. Per supportare i writer più, tutte le operazioni devono essere eseguite tramite il wrapper restituito da Synchronized metodo.

L'enumerazione in una raccolta non è di per sé thread-safe. Anche se una raccolta è sincronizzata, altri thread possono ancora modificare la raccolta, causando l'enumeratore a generare un'eccezione. Per garantire che l'enumerazione sia thread-safe, è possibile bloccare la raccolta durante l'intera enumerazione o intercettare le eccezioni derivazione dalle modifiche apportate da altri thread.

Nell'esempio di codice seguente viene illustrato come bloccare la raccolta utilizzando il SyncRoot durante l'intera enumerazione:


Hashtable myCollection = new Hashtable();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}


Nell'esempio seguente viene illustrato come sincronizzare a Hashtable, per determinare se un oggetto Hashtable è sincronizzato e utilizzano sincronizzato Hashtable.


using System;
using System.Collections;
public class SamplesHashtable  {

   public static void Main()  {

      // Creates and initializes a new Hashtable.
      Hashtable myHT = new Hashtable();
      myHT.Add( 0, "zero" );
      myHT.Add( 1, "one" );
      myHT.Add( 2, "two" );
      myHT.Add( 3, "three" );
      myHT.Add( 4, "four" );

      // Creates a synchronized wrapper around the Hashtable.
      Hashtable mySyncdHT = Hashtable.Synchronized( myHT );

      // Displays the sychronization status of both Hashtables.
      Console.WriteLine( "myHT is {0}.", myHT.IsSynchronized ? "synchronized" : "not synchronized" );
      Console.WriteLine( "mySyncdHT is {0}.", mySyncdHT.IsSynchronized ? "synchronized" : "not synchronized" );
   }
}
/* 
This code produces the following output.

myHT is not synchronized.
mySyncdHT is synchronized.
*/ 


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.