SynchronizationAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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) |
|
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) |