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 

설명

이 특성은 개체에 적용 되 면이 속성의 인스턴스를 공유 하는 모든 컨텍스트에서 하나의 스레드만 실행 중일 수 있습니다.When this attribute is applied to an object, only one thread can be executing in all contexts that share an instance of this property. 가로채 고 해당 컨텍스트에 대 한 들어오는 호출을 serialize 하는 싱크를 제공 하면 됩니다.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 :에서 하나를 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. SecurityException 직접 실행 호출자 또는 파생된 클래스 중 하나에 인프라 권한이 없는 경우 throw 됩니다.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)

재진입이 필요한지 여부를 나타내는 부울 값을 사용하여 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)

이 특성이 적용되는 개체의 동작을 나타내는 플래그와 재진입이 필요한지 여부를 나타내는 부울 값을 사용하여 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

재진입이 필요한지 여부를 나타내는 부울 값을 가져오거나 설정합니다.Gets or sets a Boolean value indicating whether reentry is required.

Locked

Context의 이 인스턴스를 구현하는 SynchronizationAttribute가 잠겨 있는지 여부를 나타내는 부울 값을 가져오거나 설정합니다.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)

이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 부울 값을 반환합니다.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)

외부 호출 싱크를 만들어 원격 호출의 클라이언트 끝에 있는 컨텍스트 경계에 제공된 싱크 체인 앞에 이 싱크를 연결합니다.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)

컨텍스트 매개 변수가 컨텍스트 특성의 요구 사항을 충족시키는지 여부를 나타내는 부울 값을 반환합니다.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()

현재 개체를 나타내는 문자열을 반환합니다.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

적용 대상