SynchronizationAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Aplica un dominio de sincronización para el contexto actual y todos los contextos que comparten la misma instancia.
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.Serializable]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[System.AttributeUsage(System.AttributeTargets.Class)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public class SynchronizationAttribute : System.Runtime.Remoting.Contexts.ContextAttribute, System.Runtime.Remoting.Contexts.IContributeClientContextSink, System.Runtime.Remoting.Contexts.IContributeServerContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
type SynchronizationAttribute = class
inherit ContextAttribute
interface IContributeServerContextSink
interface IContributeClientContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SynchronizationAttribute = class
inherit ContextAttribute
interface IContributeServerContextSink
interface IContributeClientContextSink
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type SynchronizationAttribute = class
inherit ContextAttribute
interface IContributeServerContextSink
interface IContributeClientContextSink
Public Class SynchronizationAttribute
Inherits ContextAttribute
Implements IContributeClientContextSink, IContributeServerContextSink
- Herencia
- Atributos
- Implementaciones
Ejemplos
En el ejemplo de código siguiente se muestra el uso de SynchronizationAttribute. Para obtener el código de ejemplo completo, vea el ejemplo de la AsyncResult clase .
// 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
Comentarios
Cuando este atributo se aplica a un objeto, solo se puede ejecutar un subproceso en todos los contextos que comparten una instancia de esta propiedad. Esto se hace mediante la contribución de receptores que interceptan y serializan las llamadas entrantes para los contextos respectivos. Si la propiedad está marcada para reentrada, las llamadas también se interceptan. La interceptación de la llamada permite que otros subprocesos en espera entren en el dominio de sincronización para obtener un rendimiento máximo.
Nota:
Hay dos clases denominadas SynchronizationAttribute : una en el System.Runtime.Remoting.Contexts espacio de nombres y la otra en el System.EnterpriseServices espacio de nombres. La System.EnterpriseServices.SynchronizationAttribute clase solo admite llamadas sincrónicas y solo se puede usar con componentes con servicio.
System.Runtime.Remoting.Contexts.SynchronizationAttribute admite llamadas sincrónicas y asincrónicas, y solo se puede usar con objetos enlazados al contexto. (Para obtener más información sobre los objetos enlazados al contexto, vea la ContextBoundObject clase ).
Nota:
Esta clase realiza una demanda de vínculo y una demanda de herencia en el nivel de clase. SecurityException Se produce una excepción cuando el llamador inmediato o la clase derivada no tiene permiso de infraestructura. Para obtener más información sobre las demandas de seguridad, consulte Demandas de Vinculación.
Constructores
| Nombre | Description |
|---|---|
| SynchronizationAttribute() |
Inicializa una nueva instancia de la SynchronizationAttribute clase con valores predeterminados. |
| SynchronizationAttribute(Boolean) |
Inicializa una nueva instancia de la SynchronizationAttribute clase con un valor booleano que indica si se requiere reentrada. |
| SynchronizationAttribute(Int32, Boolean) |
Inicializa una nueva instancia de la SynchronizationAttribute clase con una marca que indica el comportamiento del objeto al que se aplica este atributo y un valor booleano que indica si se requiere reentrada. |
| SynchronizationAttribute(Int32) |
Inicializa una nueva instancia de la SynchronizationAttribute clase con una marca que indica el comportamiento del objeto al que se aplica este atributo. |
Campos
| Nombre | Description |
|---|---|
| AttributeName |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Indica el nombre del atributo de contexto. (Heredado de ContextAttribute) |
| NOT_SUPPORTED |
Indica que la clase a la que se aplica este atributo no se puede crear en un contexto que tenga sincronización. Este campo es constante. |
| REQUIRED |
Indica que la clase a la que se aplica este atributo debe crearse en un contexto que tenga sincronización. Este campo es constante. |
| REQUIRES_NEW |
Indica que la clase a la que se aplica este atributo debe crearse en un contexto con una nueva instancia de la propiedad de sincronización cada vez. Este campo es constante. |
| SUPPORTED |
Indica que la clase a la que se aplica este atributo no depende de si el contexto tiene sincronización. Este campo es constante. |
Propiedades
| Nombre | Description |
|---|---|
| IsReEntrant |
Obtiene o establece un valor booleano que indica si se requiere reentrada. |
| Locked |
Obtiene o establece un valor booleano que indica si la Context implementación de esta instancia de SynchronizationAttribute está bloqueada. |
| Name |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Obtiene el nombre del atributo de contexto. (Heredado de ContextAttribute) |
| TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Devuelve un valor booleano que indica si esta instancia es igual al objeto especificado. (Heredado de ContextAttribute) |
| Freeze(Context) |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Se llama cuando se inmoviliza el contexto. (Heredado de ContextAttribute) |
| GetClientContextSink(IMessageSink) |
Crea un receptor callOut y lo encadena delante de la cadena de receptores proporcionada en el límite de contexto del final del cliente de una llamada remota. |
| GetHashCode() |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Devuelve el código hash de esta instancia de ContextAttribute. (Heredado de ContextAttribute) |
| GetPropertiesForNewContext(IConstructionCallMessage) |
Agrega la |
| GetServerContextSink(IMessageSink) |
Crea un receptor de distribución sincronizado y lo encadena delante de la cadena de receptores proporcionada en el límite de contexto del extremo del servidor de una llamada remota. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IsContextOK(Context, IConstructionCallMessage) |
Devuelve un valor booleano que indica si el parámetro de contexto cumple los requisitos del atributo de contexto. |
| IsDefaultAttribute() |
Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
| IsNewContextOK(Context) |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Devuelve un valor booleano que indica si la propiedad de contexto es compatible con el nuevo contexto. (Heredado de ContextAttribute) |
| Match(Object) |
Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz. (Heredado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a propiedades y métodos expuestos por un objeto . (Heredado de Attribute) |