SynchronizationAttribute Klasse

Definition

Erzwingt eine Synchronisierungsdomäne für den aktuellen Kontext und alle Kontexte, die dieselbe Instanz gemeinsam nutzen.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
Vererbung
SynchronizationAttribute
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird die Verwendung von SynchronizationAttributeveranschaulicht.The following code example demonstrates the use of the SynchronizationAttribute. Den gesamten Beispielcode finden Sie im Beispiel für die AsyncResult -Klasse.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 

Hinweise

Wenn dieses Attribut auf ein Objekt angewendet wird, kann nur ein Thread in allen Kontexten ausgeführt werden, die eine Instanz dieser Eigenschaft gemeinsam verwenden.When this attribute is applied to an object, only one thread can be executing in all contexts that share an instance of this property. Dies erfolgt durch die Beitragenden senken, die eingehende Aufrufe für die jeweiligen Kontexte abfangen und serialisieren.This is done by contributing sinks that intercept and serialize incoming calls for the respective contexts. Wenn die Eigenschaft für die erneute Eingabe markiert ist, werden auch die Legenden abgefangen.If the property is marked for reentry, then callouts are intercepted too. Die Legenden-Abfang Funktion ermöglicht anderen wartenden Threads das Eintreten der Synchronisierungs Domäne für maximalen Durchsatz.The callout interception allows other waiting threads to enter the synchronization domain for maximal throughput.

Hinweis

Es gibt zwei Klassen SynchronizationAttribute System.Runtime.Remoting.Contexts mit dem Namen: eine im System.EnterpriseServices -Namespace und die andere im-Namespace.There are two classes named SynchronizationAttribute : one in the System.Runtime.Remoting.Contexts namespace, and the other in the System.EnterpriseServices namespace. Die System.EnterpriseServices.SynchronizationAttribute -Klasse unterstützt nur synchrone Aufrufe und kann nur mit Serviced Components verwendet werden.The System.EnterpriseServices.SynchronizationAttribute class supports only synchronous calls, and can be used only with serviced components. System.Runtime.Remoting.Contexts.SynchronizationAttribute Unterstützt synchrone und asynchrone Aufrufe und kann nur mit Kontext gebundenen Objekten verwendet werden.The System.Runtime.Remoting.Contexts.SynchronizationAttribute supports both synchronous and asynchronous calls, and can be used only with context bound objects. (Weitere Informationen zu Kontext gebundenen Objekten finden Sie in der ContextBoundObject -Klasse.)(For more information on context bound objects, see the ContextBoundObject class.)

Hinweis

Diese Klasse stellt einen Link Aufruf und eine Vererbungs Anforderung auf Klassenebene dar.This class makes a link demand and an inheritance demand at the class level. Eine SecurityException wird ausgelöst, wenn der unmittelbare Aufrufer oder die abgeleitete Klasse nicht über eine Infrastruktur Berechtigung verfügt.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Ausführliche Informationen zu Sicherheitsanforderungen finden Sie unter Link Aufrufe und Vererbungs Anforderungen.For details about security demands, see Link Demands and Inheritance Demands.

Konstruktoren

SynchronizationAttribute()

Initialisiert eine neue Instanz der SynchronizationAttribute-Klasse mit Standardwerten.Initializes a new instance of the SynchronizationAttribute class with default values.

SynchronizationAttribute(Boolean)

Initialisiert eine neue Instanz der SynchronizationAttribute-Klasse mit einem booleschen Wert, der angibt, ob Reentranz erforderlich ist.Initializes a new instance of the SynchronizationAttribute class with a Boolean value indicating whether reentry is required.

SynchronizationAttribute(Int32)

Initialisiert eine neue Instanz der SynchronizationAttribute-Klasse mit einem Flag zur Angabe des Verhaltens für das Objekt, auf das das Attribut angewendet wird.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)

Initialisiert eine neue Instanz der SynchronizationAttribute-Klasse mit einem Flag zur Angabe des Verhaltens für das Objekt, auf das das Attribut angewendet wird, und einem booleschen Wert, der angibt, ob Reentranz erforderlich ist.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.

Felder

AttributeName

Gibt den Namen des Kontextattributs an.Indicates the name of the context attribute.

(Geerbt von ContextAttribute)
NOT_SUPPORTED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, nicht in einem Kontext mit Synchronisierung erstellt werden kann.Indicates that the class to which this attribute is applied cannot be created in a context that has synchronization. Dieses Feld ist konstant.This field is constant.

REQUIRED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, in einem Kontext mit Synchronisierung erstellt werden muss.Indicates that the class to which this attribute is applied must be created in a context that has synchronization. Dieses Feld ist konstant.This field is constant.

REQUIRES_NEW

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, in einem Kontext mit jeweils einer neuen Instanz der Synchronisierungseigenschaft erstellt werden muss.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. Dieses Feld ist konstant.This field is constant.

SUPPORTED

Gibt an, dass die Klasse, auf die dieses Attribut angewendet wird, nicht vom Vorhandensein einer Synchronisierung für den Kontext abhängig ist.Indicates that the class to which this attribute is applied is not dependent on whether the context has synchronization. Dieses Feld ist konstant.This field is constant.

Eigenschaften

IsReEntrant

Ruft einen booleschen Wert ab, der angibt, ob Reentranz erforderlich ist, oder legt diesen fest.Gets or sets a Boolean value indicating whether reentry is required.

Locked

Ruft einen booleschen Wert ab, der angibt, ob der Context gesperrt ist, der diese Instanz von SynchronizationAttribute implementiert, oder legt diesen fest.Gets or sets a Boolean value indicating whether the Context implementing this instance of SynchronizationAttribute is locked.

Name

Ruft den Namen des Kontextattributs ab.Gets the name of the context attribute.

(Geerbt von ContextAttribute)
TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen booleschen Wert zurück, der angibt, ob diese Instanz gleich dem angegebenen Objekt ist.Returns a Boolean value indicating whether this instance is equal to the specified object.

(Geerbt von ContextAttribute)
Freeze(Context)

Wird aufgerufen, wenn der Kontext eingefroren ist.Called when the context is frozen.

(Geerbt von ContextAttribute)
GetClientContextSink(IMessageSink)

Erstellt eine CallOut-Senke und stellt diese an den Anfang der vorhandenen Senkenkette, sodass sie sich an der Kontextgrenze eines Remoteaufrufs von der Clientseite befindet.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()

Gibt den Hashcode dieser Instanz von ContextAttribute zurück.Returns the hashcode for this instance of ContextAttribute.

(Geerbt von ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Fügt der angegebenen IConstructionCallMessage die Synchronized-Kontexteigenschaft hinzu.Adds the Synchronized context property to the specified IConstructionCallMessage.

GetServerContextSink(IMessageSink)

Erstellt eine synchroniserten Dispatchsenke und stellt diese an den Anfang der vorhandenen Senkenkette, sodass sie sich an der Kontextgrenze eines Remoteaufrufs von der Serverseite befindet.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()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IsContextOK(Context, IConstructionCallMessage)

Gibt einen booleschen Wert zurück, der angibt, ob der Kontextparameter den Anforderungen des Kontextattributs entspricht.Returns a Boolean value indicating whether the context parameter meets the context attribute's requirements.

IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Geerbt von Attribute)
IsNewContextOK(Context)

Gibt einen booleschen Wert zurück, der angibt, ob die Kontexteigenschaft mit dem neuen Kontext kompatibel ist.Returns a Boolean value indicating whether the context property is compatible with the new context.

(Geerbt von ContextAttribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Geerbt von Attribute)

Sicherheit

SecurityPermission
für den Betrieb mit Infrastruktur Code.for operating with infrastructure code. Anforderungs Wert: InheritanceDemand; Berechtigungs Wert:InfrastructureDemand value: InheritanceDemand; Permission Value: Infrastructure

Gilt für: