SynchronizationAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een synchronisatiedomein afgedwongen voor de huidige context en alle contexten die hetzelfde exemplaar delen.
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
- Overname
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende codevoorbeeld ziet u het gebruik van de SynchronizationAttribute. Zie het voorbeeld voor de AsyncResult klasse voor de volledige voorbeeldcode.
// 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
Opmerkingen
Wanneer dit kenmerk wordt toegepast op een object, kan slechts één thread worden uitgevoerd in alle contexten die een exemplaar van deze eigenschap delen. Dit wordt gedaan door sinks bij te dragen die binnenkomende aanroepen voor de respectieve contexten onderscheppen en serialiseren. Als de eigenschap is gemarkeerd voor opnieuw proberen, worden bijschriften ook onderschept. Met het onderscheppen van bijschriften kunnen andere wachtende threads het synchronisatiedomein invoeren voor maximale doorvoer.
Note
Er zijn twee klassen met de naam SynchronizationAttribute : een in de System.Runtime.Remoting.Contexts naamruimte en de andere in de System.EnterpriseServices naamruimte. De System.EnterpriseServices.SynchronizationAttribute klasse ondersteunt alleen synchrone aanroepen en kan alleen worden gebruikt met serviceonderdelen. De System.Runtime.Remoting.Contexts.SynchronizationAttribute functie ondersteunt zowel synchrone als asynchrone aanroepen en kan alleen worden gebruikt met contextgebonden objecten. (Zie de ContextBoundObject klasse voor meer informatie over contextgebonden objecten.)
Note
Deze klasse maakt een koppelingsvraag en een overnamevraag op klasseniveau. Er SecurityException wordt een gegenereerd wanneer de directe aanroeper of de afgeleide klasse geen infrastructuurmachtiging heeft. Zie Koppelingsvereisten en overnamevereisten voor meer informatie over beveiligingsvereisten.
Constructors
| Name | Description |
|---|---|
| SynchronizationAttribute() |
Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met standaardwaarden. |
| SynchronizationAttribute(Boolean) |
Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een Booleaanse waarde die aangeeft of opnieuw proberen is vereist. |
| SynchronizationAttribute(Int32, Boolean) |
Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een vlag die het gedrag aangeeft van het object waarop dit kenmerk wordt toegepast, en een Booleaanse waarde die aangeeft of opnieuw proberen is vereist. |
| SynchronizationAttribute(Int32) |
Initialiseert een nieuw exemplaar van de SynchronizationAttribute klasse met een vlag die het gedrag aangeeft van het object waarop dit kenmerk wordt toegepast. |
Velden
| Name | Description |
|---|---|
| AttributeName |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Geeft de naam van het contextkenmerk aan. (Overgenomen van ContextAttribute) |
| NOT_SUPPORTED |
Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, niet kan worden gemaakt in een context met synchronisatie. Dit veld is constant. |
| REQUIRED |
Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, moet worden gemaakt in een context met synchronisatie. Dit veld is constant. |
| REQUIRES_NEW |
Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, elke keer in een context met een nieuw exemplaar van de synchronisatie-eigenschap moet worden gemaakt. Dit veld is constant. |
| SUPPORTED |
Geeft aan dat de klasse waarop dit kenmerk wordt toegepast, niet afhankelijk is van of de context synchronisatie heeft. Dit veld is constant. |
Eigenschappen
| Name | Description |
|---|---|
| IsReEntrant |
Hiermee wordt een Booleaanse waarde opgehaald of ingesteld die aangeeft of opnieuw proberen is vereist. |
| Locked |
Hiermee wordt een Booleaanse waarde opgehaald of ingesteld die aangeeft of de Context implementatie van SynchronizationAttribute dit exemplaar is vergrendeld. |
| Name |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Hiermee haalt u de naam van het contextkenmerk op. (Overgenomen van ContextAttribute) |
| TypeId |
Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id. (Overgenomen van Attribute) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Retourneert een Booleaanse waarde die aangeeft of dit exemplaar gelijk is aan het opgegeven object. (Overgenomen van ContextAttribute) |
| Freeze(Context) |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Wordt aangeroepen wanneer de context wordt geblokkeerd. (Overgenomen van ContextAttribute) |
| GetClientContextSink(IMessageSink) |
Hiermee maakt u een CallOut-sink en koppelt u deze aan de opgegeven keten van sinks aan de contextgrens aan het einde van een externe aanroep. |
| GetHashCode() |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Retourneert de hashcode voor dit exemplaar van ContextAttribute. (Overgenomen van ContextAttribute) |
| GetPropertiesForNewContext(IConstructionCallMessage) |
Hiermee voegt u de |
| GetServerContextSink(IMessageSink) |
Hiermee maakt u een gesynchroniseerde verzendsink en koppelt u deze aan de opgegeven keten van sinks aan de contextgrens aan het einde van een externe aanroep. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsContextOK(Context, IConstructionCallMessage) |
Retourneert een Booleaanse waarde die aangeeft of de contextparameter voldoet aan de vereisten van het contextkenmerk. |
| IsDefaultAttribute() |
Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse. (Overgenomen van Attribute) |
| IsNewContextOK(Context) |
Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken. Retourneert een Booleaanse waarde die aangeeft of de contexteigenschap compatibel is met de nieuwe context. (Overgenomen van ContextAttribute) |
| Match(Object) |
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object. (Overgenomen van Attribute) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen. (Overgenomen van Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1). (Overgenomen van Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven. (Overgenomen van Attribute) |