Udostępnij za pośrednictwem


SynchronizationAttribute Klasa

Definicja

Wymusza domenę synchronizacji dla bieżącego kontekstu i wszystkich kontekstów, które współużytkują to samo wystąpienie.

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
Dziedziczenie
SynchronizationAttribute
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano użycie obiektu SynchronizationAttribute. Pełny przykładowy kod można znaleźć w przykładzie AsyncResult dla klasy .

// 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

Uwagi

Gdy ten atrybut jest stosowany do obiektu, tylko jeden wątek może być wykonywany we wszystkich kontekstach, które współużytkujące wystąpienie tej właściwości. Odbywa się to przez współtworzenia ujścia, które przechwytują i serializują przychodzące wywołania dla odpowiednich kontekstów. Jeśli właściwość jest oznaczona do ponownego wyjęcia, wywołania są również przechwytywane. Przechwytywanie objaśnień umożliwia innym wątkom oczekującym wejście do domeny synchronizacji w celu uzyskania maksymalnej przepływności.

Uwaga

Istnieją dwie klasy o nazwie SynchronizationAttribute : jedna w System.Runtime.Remoting.Contexts przestrzeni nazw, a druga w System.EnterpriseServices przestrzeni nazw. Klasa System.EnterpriseServices.SynchronizationAttribute obsługuje tylko wywołania synchroniczne i może być używana tylko ze składnikami usługi. Funkcja System.Runtime.Remoting.Contexts.SynchronizationAttribute obsługuje zarówno wywołania synchroniczne, jak i asynchroniczne, i może być używana tylko z obiektami powiązanymi kontekstem. (Aby uzyskać więcej informacji na temat obiektów powiązanych z kontekstem, zobacz klasę ContextBoundObject ).

Uwaga

Ta klasa sprawia, że żądanie łącza i zapotrzebowanie na dziedziczenie na poziomie klasy. Obiekt SecurityException jest zgłaszany, gdy obiekt wywołujący natychmiast lub klasa pochodna nie ma uprawnień do infrastruktury. Aby uzyskać szczegółowe informacje na temat wymagań dotyczących zabezpieczeń, zobacz Link Demands and Inheritance Demands (Wymagania dotyczące linków i żądań dziedziczenia).

Konstruktory

SynchronizationAttribute()

Inicjuje nowe wystąpienie klasy SynchronizationAttribute z domyślnymi wartościami.

SynchronizationAttribute(Boolean)

Inicjuje SynchronizationAttribute nowe wystąpienie klasy z wartością logiczną wskazującą, czy jest wymagana ponowna zmiana.

SynchronizationAttribute(Int32)

Inicjuje nowe wystąpienie SynchronizationAttribute klasy z flagą wskazującą zachowanie obiektu, do którego zastosowano ten atrybut.

SynchronizationAttribute(Int32, Boolean)

Inicjuje nowe wystąpienie SynchronizationAttribute klasy z flagą wskazującą zachowanie obiektu, do którego zastosowano ten atrybut, oraz wartość logiczną wskazującą, czy wymagane jest ponowne wystąpienie.

Pola

AttributeName

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Wskazuje nazwę atrybutu kontekstu.

(Odziedziczone po ContextAttribute)
NOT_SUPPORTED

Wskazuje, że nie można utworzyć klasy, do której zastosowano ten atrybut, w kontekście z synchronizacją. To pole jest stałe.

REQUIRED

Wskazuje, że klasa, do której zastosowano ten atrybut, musi zostać utworzona w kontekście z synchronizacją. To pole jest stałe.

REQUIRES_NEW

Wskazuje, że klasa, do której zastosowano ten atrybut, musi zostać utworzona w kontekście z nowym wystąpieniem właściwości synchronizacji za każdym razem. To pole jest stałe.

SUPPORTED

Wskazuje, że klasa, do której zastosowano ten atrybut, nie zależy od tego, czy kontekst ma synchronizację. To pole jest stałe.

Właściwości

IsReEntrant

Pobiera lub ustawia wartość logiczną wskazującą, czy ponowne wyjęcie jest wymagane.

Locked

Pobiera lub ustawia wartość logiczną wskazującą, czy Context implementowanie tego wystąpienia SynchronizationAttribute jest zablokowane.

Name

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Pobiera nazwę atrybutu kontekstu.

(Odziedziczone po ContextAttribute)
TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu .

(Odziedziczone po Attribute)

Metody

Equals(Object)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca wartość logiczną wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po ContextAttribute)
Freeze(Context)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Wywoływana, gdy kontekst jest zamrożony.

(Odziedziczone po ContextAttribute)
GetClientContextSink(IMessageSink)

Tworzy ujście objaśnienia i tworzy łańcuch przed podanym łańcuchem ujść w granicach kontekstu na końcu wywołania komunikacji telefonicznej klienta.

GetHashCode()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca kod skrótu dla tego wystąpienia klasy ContextAttribute.

(Odziedziczone po ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Synchronized Dodaje właściwość kontekstu do określonego IConstructionCallMessageelementu .

GetServerContextSink(IMessageSink)

Tworzy zsynchronizowane ujście wysyłania i tworzy łańcuch przed podanym łańcuchem ujść na granicy kontekstu na końcu połączenia komunikacji telefonicznej serwera.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IsContextOK(Context, IConstructionCallMessage)

Zwraca wartość logiczną wskazującą, czy parametr kontekstu spełnia wymagania atrybutu kontekstu.

IsDefaultAttribute()

Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
IsNewContextOK(Context)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca wartość logiczną wskazującą, czy właściwość kontekstu jest zgodna z nowym kontekstem.

(Odziedziczone po ContextAttribute)
Match(Object)

Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy