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 

Комментарии

Когда этот атрибут применяется к объекту, только один поток может выполняться во всех контекстах, совместно использующих экземпляр этого свойства.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 : один 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 Исключение возникает, если непосредственный вызывающий объект или производный класс не имеет разрешения инфраструктуры.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)

Инициализирует новый экземпляр класса 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)

Инициализирует новый экземпляр класса 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

Возвращает или задает логическое значение, указывающее, требуется ли повторный ввод.Gets or sets a Boolean value indicating whether reentry is required.

Locked Locked Locked Locked

Возвращает или задает логическое значение, указывающее, заблокирован ли Context, реализующий экземпляр атрибута SynchronizationAttribute .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)

Возвращает логическое значение, указывающее, равен ли данный экземпляр заданному объекту.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)

Создает приемник внешних вызовов и добавляет его в качестве первого звена к предоставленной цепочке приемников на контекстной границе на клиентской стороне вызова удаленного взаимодействия.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)

Возвращает логическое значение, указывающее, удовлетворяет ли параметр контекста требованиям атрибута контекста.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

Применяется к