SynchronizationAttribute Třída

Definice

Vynucuje synchronizační doménu pro aktuální kontext a všechny kontexty, které sdílejí stejnou instanci.

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
[<System.AttributeUsage(System.AttributeTargets.Class)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SynchronizationAttribute = class
    inherit ContextAttribute
    interface IContributeClientContextSink
    interface IContributeServerContextSink
Public Class SynchronizationAttribute
Inherits ContextAttribute
Implements IContributeClientContextSink, IContributeServerContextSink
Dědičnost
SynchronizationAttribute
Atributy
Implementuje

Příklady

Následující příklad kódu ukazuje použití SynchronizationAttribute. Úplný vzorový kód najdete v příkladu AsyncResult pro třídu .

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

Poznámky

Když je tento atribut použit na objekt, pouze jedno vlákno může být spuštěno ve všech kontextech, které sdílejí instanci této vlastnosti. To se provádí přispíváním jímek, které zachycují a serializují příchozí volání pro příslušné kontexty. Pokud je vlastnost označená pro opakované volání, zachytí se také popisky. Zachytávání popisků umožňuje, aby další čekající vlákna vstoupila do domény synchronizace pro dosažení maximální propustnosti.

Poznámka

Existují dvě třídy s názvem SynchronizationAttribute : jedna v System.Runtime.Remoting.Contexts oboru názvů a druhá v System.EnterpriseServices oboru názvů. Třída System.EnterpriseServices.SynchronizationAttribute podporuje pouze synchronní volání a lze ji použít pouze s obsluhovaných komponent. Podporuje System.Runtime.Remoting.Contexts.SynchronizationAttribute synchronní i asynchronní volání a lze ho použít pouze s objekty vázanými na kontext. (Další informace o kontextově vázaných objektech najdete ve ContextBoundObject třídě .)

Poznámka

Tato třída vytváří požadavek na propojení a požadavek dědičnosti na úrovni třídy. Vyvolá SecurityException se, když přímý volající nebo odvozená třída nemá oprávnění k infrastruktuře. Podrobnosti o požadavcích na zabezpečení najdete v tématu Propojení požadavků a Požadavků dědičnosti.

Konstruktory

SynchronizationAttribute()

Inicializuje novou instanci třídy SynchronizationAttribute s výchozími hodnotami.

SynchronizationAttribute(Boolean)

Inicializuje novou instanci SynchronizationAttribute třídy s logickou hodnotou označující, zda je vyžadován opětovný zaentry.

SynchronizationAttribute(Int32)

Inicializuje novou instanci SynchronizationAttribute třídy příznakem označujícím chování objektu, na který je tento atribut použit.

SynchronizationAttribute(Int32, Boolean)

Inicializuje novou instanci SynchronizationAttribute třídy s příznakem označujícím chování objektu, na který je tento atribut použit, a logickou hodnotou označující, zda je vyžadována opětovná hodnota.

Pole

AttributeName

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Označuje název atributu kontextu.

(Zděděno od ContextAttribute)
NOT_SUPPORTED

Označuje, že třídu, na kterou je tento atribut použit, nelze vytvořit v kontextu, který má synchronizaci. Toto pole je konstantní.

REQUIRED

Označuje, že třída, na kterou je tento atribut použit, musí být vytvořena v kontextu, který má synchronizaci. Toto pole je konstantní.

REQUIRES_NEW

Označuje, že třída, na kterou je tento atribut použit, musí být vytvořena v kontextu s novou instancí synchronizační vlastnosti pokaždé. Toto pole je konstantní.

SUPPORTED

Označuje, že třída, na kterou je tento atribut použit, není závislá na tom, zda má kontext synchronizaci. Toto pole je konstantní.

Vlastnosti

IsReEntrant

Získá nebo nastaví logickou hodnotu označující, zda je vyžadována opětovná hodnota.

Locked

Získá nebo nastaví logickou hodnotu označující, zda Context je implementace této instance SynchronizationAttribute uzamčena.

Name

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Získá název atributu kontextu.

(Zděděno od ContextAttribute)
TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu .

(Zděděno od Attribute)

Metody

Equals(Object)

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Vrátí logickou hodnotu označující, zda se tato instance rovná zadanému objektu.

(Zděděno od ContextAttribute)
Freeze(Context)

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Volá se, když je kontext zablokovaný.

(Zděděno od ContextAttribute)
GetClientContextSink(IMessageSink)

Vytvoří jímku CallOut a zřetězuje ji před zadaný řetězec jímek na hranici kontextu na straně klienta vzdálené komunikace volání.

GetHashCode()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Vrátí hashcode pro tuto instanci .ContextAttribute

(Zděděno od ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Přidá kontextovou Synchronized vlastnost do zadaného IConstructionCallMessageobjektu .

GetServerContextSink(IMessageSink)

Vytvoří synchronizovanou jímku odesílání a zřetězí ji před zadaný řetězec jímek na hranici kontextu na straně serveru vzdáleného volání.

GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IsContextOK(Context, IConstructionCallMessage)

Vrátí logickou hodnotu označující, zda parametr kontextu splňuje požadavky atributu kontextu.

IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
IsNewContextOK(Context)

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Vrátí logickou hodnotu označující, zda je vlastnost kontextu kompatibilní s novým kontextem.

(Zděděno od ContextAttribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro