SynchronizationAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Attiva un dominio di sincronizzazione per il contesto corrente e per tutti i contesti che condividono la stessa istanza.
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
- Ereditarietà
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato l'uso di SynchronizationAttribute. Per il codice di esempio completo, vedere l'esempio per la AsyncResult classe .
// 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
Commenti
Quando questo attributo viene applicato a un oggetto, è possibile eseguire un solo thread in tutti i contesti che condividono un'istanza di questa proprietà. Questa operazione viene eseguita contribuendo ai sink che intercettano e serializzano le chiamate in ingresso per i rispettivi contesti. Se la proprietà è contrassegnata per la ripetizione, anche i callout vengono intercettati. L'intercettazione del callout consente ad altri thread in attesa di immettere il dominio di sincronizzazione per ottenere una velocità effettiva massima.
Nota
Esistono due classi denominate SynchronizationAttribute
: una nello System.Runtime.Remoting.Contexts spazio dei nomi e l'altra nello System.EnterpriseServices spazio dei nomi . La System.EnterpriseServices.SynchronizationAttribute classe supporta solo chiamate sincrone e può essere usata solo con i componenti serviti.
System.Runtime.Remoting.Contexts.SynchronizationAttribute supporta sia chiamate sincrone che asincrone e possono essere usate solo con oggetti associati al contesto. Per altre informazioni sugli oggetti associati al contesto, vedere la ContextBoundObject classe .
Nota
Questa classe rende una richiesta di collegamento e una richiesta di ereditarietà a livello di classe. Viene SecurityException generata un'eccezione quando il chiamante immediato o la classe derivata non dispone dell'autorizzazione dell'infrastruttura. Per informazioni dettagliate sulle richieste di sicurezza, vedere Richieste di collegamento e richieste di ereditarietà.
Costruttori
SynchronizationAttribute() |
Inizializza una nuova istanza della classe SynchronizationAttribute con i valori predefiniti. |
SynchronizationAttribute(Boolean) |
Inizializza una nuova istanza della classe SynchronizationAttribute con un valore Boolean che indica se è richiesto il reingresso. |
SynchronizationAttribute(Int32) |
Inizializza una nuova istanza della classe SynchronizationAttribute con un flag che indica il comportamento dell'oggetto al quale viene applicato l'attributo. |
SynchronizationAttribute(Int32, Boolean) |
Inizializza una nuova istanza della classe SynchronizationAttribute con un flag che indica il comportamento dell'oggetto al quale viene applicato l'attributo e un valore Boolean che indica se è richiesto il reingresso. |
Campi
AttributeName |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Indica il nome dell'attributo di contesto. (Ereditato da ContextAttribute) |
NOT_SUPPORTED |
Indica che la classe alla quale viene applicato l'attributo non può essere creata in un contesto con sincronizzazione. Questo campo è costante. |
REQUIRED |
Indica che la classe alla quale viene applicato l'attributo deve essere creata in un contesto con sincronizzazione. Questo campo è costante. |
REQUIRES_NEW |
Indica che la classe alla quale viene applicato l'attributo deve essere creata in un contesto con un'istanza sempre nuova della proprietà di sincronizzazione. Questo campo è costante. |
SUPPORTED |
Indica che la classe alla quale viene applicato l'attributo non dipende dalla sincronizzazione del contesto. Questo campo è costante. |
Proprietà
IsReEntrant |
Ottiene o imposta un valore Boolean che indica se è richiesto il reingresso. |
Locked |
Ottiene o imposta un valore Boolean che indica se il Context che implementa questa istanza di SynchronizationAttribute è bloccato. |
Name |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Ottiene il nome dell'attributo di contesto. (Ereditato da ContextAttribute) |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Metodi
Equals(Object) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Restituisce un valore Boolean che indica se questa istanza è uguale all'oggetto specificato. (Ereditato da ContextAttribute) |
Freeze(Context) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Chiamato quando viene bloccato il contesto. (Ereditato da ContextAttribute) |
GetClientContextSink(IMessageSink) |
Crea un sink CallOut e lo concatena davanti alla catena di sink fornita nel limite del contesto sull'estremità client di una chiamata remota. |
GetHashCode() |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Restituisce il codice hash per questa istanza di ContextAttribute. (Ereditato da ContextAttribute) |
GetPropertiesForNewContext(IConstructionCallMessage) |
Aggiunge la proprietà di contesto |
GetServerContextSink(IMessageSink) |
Crea un sink di invio sincronizzato e lo concatena davanti alla catena di sink fornita nel limite del contesto sull'estremità server di una chiamata remota. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsContextOK(Context, IConstructionCallMessage) |
Restituisce un valore Boolean che indica se il parametro di contesto soddisfa i requisiti dell'attributo di contesto. |
IsDefaultAttribute() |
In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
IsNewContextOK(Context) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Restituisce un valore Boolean indicante se la proprietà di contesto è compatibile con il nuovo contesto. (Ereditato da ContextAttribute) |
Match(Object) |
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |