SynchronizationAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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) |
|
| 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) |