SynchronizationAttribute SynchronizationAttribute SynchronizationAttribute SynchronizationAttribute Class

定義

現在のコンテキスト、および同じインスタンスを共有するすべてのコンテキストの同期ドメインを適用します。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
継承
SynchronizationAttributeSynchronizationAttributeSynchronizationAttributeSynchronizationAttribute
属性
実装

次のコード例は、の使用を示します、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.

注意

という名前の 2 つのクラスがあるSynchronizationAttribute: で 1 つ、System.Runtime.Remoting.Contexts名前空間、およびその他に、System.EnterpriseServices名前空間。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. ASecurityException直前の呼び出し元または派生クラスのいずれかにインフラストラクチャ アクセス許可があるない場合にスローされます。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() SynchronizationAttribute() SynchronizationAttribute()

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

SynchronizationAttribute(Boolean) SynchronizationAttribute(Boolean) SynchronizationAttribute(Boolean) SynchronizationAttribute(Boolean)

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

SynchronizationAttribute(Int32) SynchronizationAttribute(Int32) SynchronizationAttribute(Int32) 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) SynchronizationAttribute(Int32, Boolean) SynchronizationAttribute(Int32, Boolean) 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 AttributeName AttributeName AttributeName

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

(Inherited from ContextAttribute)
NOT_SUPPORTED NOT_SUPPORTED NOT_SUPPORTED 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 REQUIRED REQUIRED 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 REQUIRES_NEW REQUIRES_NEW 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 SUPPORTED SUPPORTED 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 IsReEntrant IsReEntrant IsReEntrant

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

Locked Locked Locked Locked

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

Name Name Name Name

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

(Inherited from ContextAttribute)
TypeId TypeId TypeId TypeId

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

(Inherited from Attribute)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from ContextAttribute)
Freeze(Context) Freeze(Context) Freeze(Context) Freeze(Context)

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

(Inherited from ContextAttribute)
GetClientContextSink(IMessageSink) GetClientContextSink(IMessageSink) GetClientContextSink(IMessageSink) 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() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage) GetPropertiesForNewContext(IConstructionCallMessage) GetPropertiesForNewContext(IConstructionCallMessage) GetPropertiesForNewContext(IConstructionCallMessage)

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

GetServerContextSink(IMessageSink) GetServerContextSink(IMessageSink) GetServerContextSink(IMessageSink) 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() GetType() GetType() GetType()

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

(Inherited from Object)
IsContextOK(Context, IConstructionCallMessage) IsContextOK(Context, IConstructionCallMessage) IsContextOK(Context, IConstructionCallMessage) IsContextOK(Context, IConstructionCallMessage)

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

IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

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

(Inherited from Attribute)
IsNewContextOK(Context) IsNewContextOK(Context) IsNewContextOK(Context) IsNewContextOK(Context)

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

(Inherited from ContextAttribute)
Match(Object) Match(Object) Match(Object) Match(Object)

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

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

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

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

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

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

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

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

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

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

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

(Inherited from Attribute)

セキュリティ

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

適用対象