ForEachItem.IsSynchronized プロパティ

定義

コレクションへのアクセスが同期されているかどうか(スレッドセーフ)を示すブール値を取得します。

public:
 property bool IsSynchronized { bool get(); };
public bool IsSynchronized { get; }
member this.IsSynchronized : bool
Public ReadOnly Property IsSynchronized As Boolean

プロパティ値

コレクションへのアクセスが同期されている場合(スレッドセーフ)、そうでなければ、誤りです。 既定値は false です。

実装

ArrayListは、IsSynchronizedプロパティを継承し実装する.NETフレームワーククラスです。 次のコード例は、 ArrayListを同期し、 ArrayList が同期されているかどうかを判断し、同期された ArrayListを使用する方法を示しています。

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" );  
   }  
}  
Imports System  
Imports System.Collections  
Public Class SamplesArrayList  
   Public Shared  Sub Main()  
      ' Creates and initializes a new ArrayList.  
      Dim myAL As ArrayList =  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.  
      Console.WriteLine("myAL is {0}.", myAL.IsSynchronized ? "synchronized" : "not synchronized")  
      Console.WriteLine("mySyncdAL is {0}.", mySyncdAL.IsSynchronized ? "synchronized" : "not synchronized")  
   End Sub  
End Class  

出力例:

myALは同期していません。

mySyncdALは同期されています。

注釈

ICollection.IsSynchronizedを実装します。 コレクションがスレッド セーフの場合、 IsSynchronized プロパティは trueを返し、プログラマはコレクションスレッドを安全に保つために何もする必要はありません。

プロパティが falseを返す場合、SyncRootプロパティはC# lockキーワードで使用できるオブジェクトを返します。 詳細は ICollection.IsSynchronizedをご覧ください。

適用対象