SynchronizationAttribute クラス

定義

現在のコンテキスト、および同じインスタンスを共有するすべてのコンテキストの同期ドメインを適用します。Enforces a synchronization domain for the current context and all contexts that share the same instance.

public ref class SynchronizationAttribute : System::Runtime::Remoting::Contexts::ContextAttribute, System::Runtime::Remoting::Contexts::IContributeClientContextSink, System::Runtime::Remoting::Contexts::IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
[System.Serializable]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeClientContextSink
    interface IContributeServerContextSink
Public Class SynchronizationAttribute
Inherits ContextAttribute
Implements IContributeClientContextSink, IContributeServerContextSink
継承
SynchronizationAttribute
属性
実装

の使用方法を次のコード例にSynchronizationAttribute示します。The following code example demonstrates the use of the SynchronizationAttribute. コード例全体については、 AsyncResultクラスの例を参照してください。For the complete example code, see the example for the AsyncResult class.

// Context-bound type with the Synchronization context attribute.

[Synchronization]
public ref class SampleSynchronized: public ContextBoundObject
{
public:

   // A method that does some work, and returns the square of the given number.
   int Square( int i )
   {
      Console::Write( "The hash of the thread executing " );
      Console::WriteLine( "SampleSynchronized::Square is: {0}", Thread::CurrentThread->GetHashCode() );
      return i * i;
   }

};
// Context-bound type with the Synchronization context attribute.
[Synchronization()]
public class SampleSynchronized : ContextBoundObject {

    // A method that does some work, and returns the square of the given number.
    public int Square(int i)  {

        Console.Write("The hash of the thread executing ");
        Console.WriteLine("SampleSynchronized.Square is: {0}", 
                             Thread.CurrentThread.GetHashCode());
        return i*i;
    }
}
' Context-bound type with the Synchronization context attribute.
<Synchronization()> Public Class SampleSynchronized
   Inherits ContextBoundObject
   
   ' A method that does some work, and returns the square of the given number.
   Public Function Square(i As Integer) As Integer
      
      Console.Write("The hash of the thread executing ")
      Console.WriteLine("SampleSynchronized.Square is: {0}", Thread.CurrentThread.GetHashCode())
      Return i * i
   End Function 

End Class 

注釈

この属性がオブジェクトに適用されている場合、このプロパティのインスタンスを共有するすべてのコンテキストで実行できるスレッドは1つだけです。When this attribute is applied to an object, only one thread can be executing in all contexts that share an instance of this property. これは、各コンテキストに対して着信呼び出しをインターセプトしてシリアル化する、シンクによって行われます。This is done by contributing sinks that intercept and serialize incoming calls for the respective contexts. プロパティが再エントリ用にマークされている場合は、コールアウトもインターセプトされます。If the property is marked for reentry, then callouts are intercepted too. コールアウトを使用すると、他の待機中のスレッドが同期ドメインに入り、スループットを最大限に向上させることができます。The callout interception allows other waiting threads to enter the synchronization domain for maximal throughput.

注意

という名前SynchronizationAttributeの2つのクラスがSystem.Runtime.Remoting.Contextsあります。1つは名前System.EnterpriseServices空間に、もう1つは名前空間にあります。There are two classes named SynchronizationAttribute : one in the System.Runtime.Remoting.Contexts namespace, and the other in the System.EnterpriseServices namespace. クラスSystem.EnterpriseServices.SynchronizationAttributeは同期呼び出しのみをサポートし、サービスコンポーネントでのみ使用できます。The System.EnterpriseServices.SynchronizationAttribute class supports only synchronous calls, and can be used only with serviced components. System.Runtime.Remoting.Contexts.SynchronizationAttributeは、同期呼び出しと非同期呼び出しの両方がサポートされており、コンテキストバインドオブジェクトでのみ使用できます。The System.Runtime.Remoting.Contexts.SynchronizationAttribute supports both synchronous and asynchronous calls, and can be used only with context bound objects. (コンテキストバインドオブジェクトの詳細については、 ContextBoundObjectクラスを参照してください)。(For more information on context bound objects, see the ContextBoundObject class.)

注意

このクラスは、リンク確認要求と継承要求をクラスレベルで行います。This class makes a link demand and an inheritance demand at the class level. SecurityException 、直前の呼び出し元または派生クラスにインフラストラクチャアクセス許可がない場合にスローされます。A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. セキュリティ要求の詳細については、「リンク確認要求と継承の要求」を参照してください。For details about security demands, see Link Demands and Inheritance Demands.

コンストラクター

SynchronizationAttribute()

SynchronizationAttribute クラスの新しいインスタンスを既定値で初期化します。Initializes a new instance of the SynchronizationAttribute class with default values.

SynchronizationAttribute(Boolean)

再エントリが必要かどうかを示す Boolean 値を指定して、SynchronizationAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the SynchronizationAttribute class with a Boolean value indicating whether reentry is required.

SynchronizationAttribute(Int32)

この属性を適用するオブジェクトの動作を示すフラグを指定して、SynchronizationAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the SynchronizationAttribute class with a flag indicating the behavior of the object to which this attribute is applied.

SynchronizationAttribute(Int32, Boolean)

この属性を適用するオブジェクトの動作を示すフラグと、再エントリが必要かどうかを示す Boolean 値を指定して、SynchronizationAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the SynchronizationAttribute class with a flag indicating the behavior of the object to which this attribute is applied, and a Boolean value indicating whether reentry is required.

フィールド

AttributeName

コンテキスト属性の名前を示します。Indicates the name of the context attribute.

(継承元 ContextAttribute)
NOT_SUPPORTED

この属性を適用したクラスを、同期を備えているコンテキスト内で作成できないことを示します。Indicates that the class to which this attribute is applied cannot be created in a context that has synchronization. このフィールドは定数です。This field is constant.

REQUIRED

この属性を適用したクラスを、同期を備えているコンテキスト内で作成する必要があることを示します。Indicates that the class to which this attribute is applied must be created in a context that has synchronization. このフィールドは定数です。This field is constant.

REQUIRES_NEW

この属性を適用したクラスを、同期プロパティの新しいインスタンスを使用して、コンテキスト内で毎回作成する必要があることを示します。Indicates that the class to which this attribute is applied must be created in a context with a new instance of the synchronization property each time. このフィールドは定数です。This field is constant.

SUPPORTED

この属性を適用したクラスが、コンテキストが同期を備えているかどうかに依存しないことを示します。Indicates that the class to which this attribute is applied is not dependent on whether the context has synchronization. このフィールドは定数です。This field is constant.

プロパティ

IsReEntrant

再エントリが必要かどうかを示す Boolean 値を取得または設定します。Gets or sets a Boolean value indicating whether reentry is required.

Locked

この Context のインスタンスを実装する SynchronizationAttribute がロックされているかどうかを示す Boolean 値を取得または設定します。Gets or sets a Boolean value indicating whether the Context implementing this instance of SynchronizationAttribute is locked.

Name

コンテキスト属性の名前を取得します。Gets the name of the context attribute.

(継承元 ContextAttribute)
TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)

メソッド

Equals(Object)

対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether this instance is equal to the specified object.

(継承元 ContextAttribute)
Freeze(Context)

コンテキストが固定されるときに呼び出されます。Called when the context is frozen.

(継承元 ContextAttribute)
GetClientContextSink(IMessageSink)

CallOut シンクを作成し、リモート処理呼び出しのクライアント エンドのコンテキスト境界で提供されたシンク チェインの前にこれをチェインします。Creates a CallOut sink and chains it in front of the provided chain of sinks at the context boundary on the client end of a remoting call.

GetHashCode()

ContextAttribute のこのインスタンスのハッシュコードを返します。Returns the hashcode for this instance of ContextAttribute.

(継承元 ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Synchronized コンテキスト プロパティを、指定した IConstructionCallMessage に追加します。Adds the Synchronized context property to the specified IConstructionCallMessage.

GetServerContextSink(IMessageSink)

同期されたディスパッチ シンクを作成し、リモート処理呼び出しのサーバー エンドのコンテキスト境界で提供されたシンク チェインの前にこれをチェインします。Creates a synchronized dispatch sink and chains it in front of the provided chain of sinks at the context boundary on the server end of a remoting call.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
IsContextOK(Context, IConstructionCallMessage)

コンテキスト パラメーターがコンテキスト属性の要件を満たしているかどうかを示す Boolean 値を返します。Returns a Boolean value indicating whether the context parameter meets the context attribute's requirements.

IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(継承元 Attribute)
IsNewContextOK(Context)

コンテキスト プロパティと新しいコンテキストとの間に互換性があるかどうかを示すブール値を返します。Returns a Boolean value indicating whether the context property is compatible with the new context.

(継承元 ContextAttribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)

セキュリティ

SecurityPermission
インフラストラクチャコードを操作する場合。for operating with infrastructure code. 要求の値InheritanceDemand:、アクセス許可値:InfrastructureDemand value: InheritanceDemand; Permission Value: Infrastructure

適用対象