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
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ý ukázkový kód najdete v příkladu AsyncResult třídy.

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

Pokud se tento atribut použije na objekt, může být spuštěno pouze jedno vlákno 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čena k opětovnému uvedení, bublinové popisky se zachytí také. Průsečík popisku umožňuje jiným čekacím vláknům zadat synchronizační doménu pro maximální propustnost.

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 u obsluhovaných komponent. Podporuje System.Runtime.Remoting.Contexts.SynchronizationAttribute synchronní i asynchronní volání a lze ji použít pouze s kontextovými objekty svázanými objekty. (Další informace o kontextových vázaných objektech naleznete v ContextBoundObject třídě.)

Poznámka:

Tato třída vytváří poptávku propojení a požadavek dědičnosti na úrovni třídy. Vyvolá SecurityException se, když buď bezprostřední volající, nebo odvozená třída nemá oprávnění infrastruktury.

Konstruktory

Name Description
SynchronizationAttribute()

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

SynchronizationAttribute(Boolean)

Inicializuje novou instanci SynchronizationAttribute třídy s logickou hodnotou označující, zda je požadováno opakování.

SynchronizationAttribute(Int32, Boolean)

Inicializuje novou instanci SynchronizationAttribute třídy příznak indikující chování objektu, na který je tento atribut použit, a logická hodnota označující, zda je požadováno opakování.

SynchronizationAttribute(Int32)

Inicializuje novou instanci SynchronizationAttribute třídy příznak indikující chování objektu, na který je tento atribut použit.

Pole

Name Description
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

Name Description
IsReEntrant

Získá nebo nastaví logickou hodnotu označující, zda je nutné zadat znovu.

Locked

Získá nebo nastaví logickou hodnotu označující, zda Context implementace této instance SynchronizationAttribute je 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 tento Attribute.

(Zděděno od Attribute)

Metody

Name Description
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 je tato instance rovna 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 při ukotvení kontextu.

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

Vytvoří jímku Popisek a zřetědí ji před poskytnutým řetězem jímek na hranici kontextu na konci vzdálené komunikace.

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)

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

GetServerContextSink(IMessageSink)

Vytvoří synchronizovanou jímku pro odeslání a zřetědí ji před poskytnutým řetězem jímek na hranici kontextu na konci vzdálené komunikace.

GetType()

Získá Type aktuální instance.

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

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

IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je 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á určuje, zda se tato instance rovná zadanému objektu.

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

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

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

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

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
_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