ArrayList.Synchronized Metódus

Definíció

Szinkronizált (szálbiztos) listaburkolót ad vissza.

Túlterhelések

Name Description
Synchronized(ArrayList)

Szinkronizált ArrayList burkolót ad vissza (szálbiztos).

Synchronized(IList)

Szinkronizált IList burkolót ad vissza (szálbiztos).

Synchronized(ArrayList)

Szinkronizált ArrayList burkolót ad vissza (szálbiztos).

public:
 static System::Collections::ArrayList ^ Synchronized(System::Collections::ArrayList ^ list);
public static System.Collections.ArrayList Synchronized(System.Collections.ArrayList list);
static member Synchronized : System.Collections.ArrayList -> System.Collections.ArrayList
Public Shared Function Synchronized (list As ArrayList) As ArrayList

Paraméterek

list
ArrayList

A ArrayList szinkronizálandó.

Válaszok

Szinkronizált ArrayList burkoló (szálbiztos).

Kivételek

list az null.

Példák

Az alábbi példakód bemutatja, hogyan zárolhatja a gyűjteményt a SyncRoot teljes enumerálás során.

ArrayList myCollection = new ArrayList();

lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New ArrayList()

SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Ez a metódus egy O(1) művelet.

Az alábbi példakód bemutatja, hogyan szinkronizálhat egy ArrayListadott kódot, hogyan állapíthatja meg, hogy szinkronizált-e a ArrayList rendszer, és hogyan használhatja a szinkronizált ArrayListkódot.

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

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add( "The" );
      myAL.Add( "quick" );
      myAL.Add( "brown" );
      myAL.Add( "fox" );

      // Creates a synchronized wrapper around the ArrayList.
      ArrayList mySyncdAL = ArrayList.Synchronized( myAL );

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

myAL is not synchronized.
mySyncdAL is synchronized.
*/
Imports System.Collections

Public Class SamplesArrayList
    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("The")
        myAL.Add("quick")
        myAL.Add("brown")
        myAL.Add("fox")
        
        ' Creates a synchronized wrapper around the ArrayList.
        Dim mySyncdAL As ArrayList = ArrayList.Synchronized(myAL)
        
        ' Displays the sychronization status of both ArrayLists.
        Dim str As String
        If myAL.IsSynchronized Then
            str = "synchronized"
        Else
            str = "not synchronized"
        End If
        Console.WriteLine("myAL is {0}.", str)
        If mySyncdAL.IsSynchronized Then
            str = "synchronized"
        Else
            str = "not synchronized"
        End If
        Console.WriteLine("mySyncdAL is {0}.", str)
    End Sub
End Class

' This code produces the following output.
' 
' myAL is not synchronized.
' mySyncdAL is synchronized.

Megjegyzések

A menetbiztonság garantálása ArrayListérdekében minden műveletet ezen a burkolón keresztül kell elvégezni.

A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

Lásd még

A következőre érvényes:

Synchronized(IList)

Szinkronizált IList burkolót ad vissza (szálbiztos).

public:
 static System::Collections::IList ^ Synchronized(System::Collections::IList ^ list);
public static System.Collections.IList Synchronized(System.Collections.IList list);
static member Synchronized : System.Collections.IList -> System.Collections.IList
Public Shared Function Synchronized (list As IList) As IList

Paraméterek

list
IList

A IList szinkronizálandó.

Válaszok

Szinkronizált IList burkoló (szálbiztos).

Kivételek

list az null.

Példák

Az alábbi példakód bemutatja, hogyan zárolhatja a gyűjteményt a SyncRoot teljes enumerálás során.

ArrayList myCollection = new ArrayList();

lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New ArrayList()

SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Ez a metódus egy O(1) művelet.

Megjegyzések

A menetbiztonság garantálása ArrayListérdekében minden műveletet ezen a burkolón keresztül kell elvégezni.

A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

Lásd még

A következőre érvényes: