SynchronizationAttribute Sınıf

Tanım

Geçerli bağlam ve aynı örneği paylaşan tüm bağlamlar için bir eşitleme etki alanı zorlar.Enforces a synchronization domain for the current context and all contexts that share the same instance.

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
Devralma
SynchronizationAttribute
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği öğesinin kullanımını gösterir SynchronizationAttribute .The following code example demonstrates the use of the SynchronizationAttribute. Örnek kod için bkz AsyncResult . sınıfının örneği.For the complete example code, see the example for the AsyncResult class.

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

Açıklamalar

Bu öznitelik bir nesneye uygulandığında, bu özelliğin bir örneğini paylaşan tüm bağlamlarda yalnızca bir iş parçacığı yürütülenebilir.When this attribute is applied to an object, only one thread can be executing in all contexts that share an instance of this property. Bu, ilgili bağlamlar için gelen çağrıları ele geçirerek ve seri hale getirerek katkıda bulunan havuzlar tarafından yapılır.This is done by contributing sinks that intercept and serialize incoming calls for the respective contexts. Özellik yeniden giriş için işaretlenmişse, belirtme çizgileri de aynı şekilde ele alınır.If the property is marked for reentry, then callouts are intercepted too. Belirtme çizgisi yakalanması, diğer bekleyen iş parçacıklarının, en fazla verimlilik için eşitleme etki alanını girmesini sağlar.The callout interception allows other waiting threads to enter the synchronization domain for maximal throughput.

Not

Adında iki sınıf vardır SynchronizationAttribute : System.Runtime.Remoting.Contexts ad alanında, diğeri ise System.EnterpriseServices ad alanı.There are two classes named SynchronizationAttribute : one in the System.Runtime.Remoting.Contexts namespace, and the other in the System.EnterpriseServices namespace. System.EnterpriseServices.SynchronizationAttributeSınıfı yalnızca zaman uyumlu çağrıları destekler ve yalnızca hizmet verilen bileşenleriyle kullanılabilir.The System.EnterpriseServices.SynchronizationAttribute class supports only synchronous calls, and can be used only with serviced components. System.Runtime.Remoting.Contexts.SynchronizationAttributeHem zaman uyumlu hem de zaman uyumsuz çağrıları destekler ve yalnızca bağlama dayalı nesneler ile kullanılabilir.The System.Runtime.Remoting.Contexts.SynchronizationAttribute supports both synchronous and asynchronous calls, and can be used only with context bound objects. (Bağlama bağlı nesneler hakkında daha fazla bilgi için, ContextBoundObject sınıfına bakın.)(For more information on context bound objects, see the ContextBoundObject class.)

Not

Bu sınıf, sınıf düzeyinde bir bağlantı isteği ve devralma talebi yapar.This class makes a link demand and an inheritance demand at the class level. SecurityExceptionTek bir çağıran veya türetilmiş sınıfın altyapı izni yoksa bir oluşturulur.A SecurityException is thrown when either the immediate caller or the derived class does not have infrastructure permission. Güvenlik talepleri hakkında daha fazla bilgi için bkz. bağlantı talepleri ve Devralma talepleri.For details about security demands, see Link Demands and Inheritance Demands.

Oluşturucular

SynchronizationAttribute()

SynchronizationAttribute sınıfının yeni bir örneğini varsayılan değerlerle başlatır.Initializes a new instance of the SynchronizationAttribute class with default values.

SynchronizationAttribute(Boolean)

SynchronizationAttributeYeniden girişin gerekli olup olmadığını gösteren bir Boole değeri olan sınıfının yeni bir örneğini başlatır.Initializes a new instance of the SynchronizationAttribute class with a Boolean value indicating whether reentry is required.

SynchronizationAttribute(Int32)

SynchronizationAttributeBu özniteliğin uygulandığı nesnenin davranışını belirten bir bayrak ile sınıfın yeni bir örneğini başlatır.Initializes a new instance of the SynchronizationAttribute class with a flag indicating the behavior of the object to which this attribute is applied.

SynchronizationAttribute(Int32, Boolean)

SynchronizationAttributeBu özniteliğin uygulandığı nesnenin davranışını belirten bir bayrak ile sınıfın yeni bir örneğini başlatır ve yeniden giriş gerekip gerekmediğini belirten bir Boole değeri.Initializes a new instance of the SynchronizationAttribute class with a flag indicating the behavior of the object to which this attribute is applied, and a Boolean value indicating whether reentry is required.

Alanlar

AttributeName

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bağlam özniteliğinin adını gösterir.Indicates the name of the context attribute.

(Devralındığı yer: ContextAttribute)
NOT_SUPPORTED

Bu özniteliğin uygulandığı sınıfın eşitlemeye sahip bir bağlamda oluşturuamayacağını gösterir.Indicates that the class to which this attribute is applied cannot be created in a context that has synchronization. Bu alan sabittir.This field is constant.

REQUIRED

Bu özniteliğin uygulandığı sınıfın eşitleme içeren bir bağlamda oluşturulması gerektiğini gösterir.Indicates that the class to which this attribute is applied must be created in a context that has synchronization. Bu alan sabittir.This field is constant.

REQUIRES_NEW

Bu özniteliğin uygulandığı sınıfın, her seferinde eşitleme özelliğinin yeni bir örneğine sahip bir bağlamda oluşturulması gerektiğini gösterir.Indicates that the class to which this attribute is applied must be created in a context with a new instance of the synchronization property each time. Bu alan sabittir.This field is constant.

SUPPORTED

Bu özniteliğin uygulandığı sınıfın, bağlamın eşitlemeye sahip olup olmadığına bağlı olmadığını gösterir.Indicates that the class to which this attribute is applied is not dependent on whether the context has synchronization. Bu alan sabittir.This field is constant.

Özellikler

IsReEntrant

Yeniden girişin gerekli olup olmadığını gösteren bir Boole değeri alır veya ayarlar.Gets or sets a Boolean value indicating whether reentry is required.

Locked

ContextBu örneğin uygulanmasının kilitlenip kilitlenmediğini gösteren bir Boole değeri alır veya ayarlar SynchronizationAttribute .Gets or sets a Boolean value indicating whether the Context implementing this instance of SynchronizationAttribute is locked.

Name

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bağlam özniteliğinin adını alır.Gets the name of the context attribute.

(Devralındığı yer: ContextAttribute)
TypeId

Türetilmiş bir sınıfta uygulandığında, bunun için benzersiz bir tanımlayıcı alır Attribute .When implemented in a derived class, gets a unique identifier for this Attribute.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bu örneğin belirtilen nesneye eşit olup olmadığını gösteren bir Boole değeri döndürür.Returns a Boolean value indicating whether this instance is equal to the specified object.

(Devralındığı yer: ContextAttribute)
Freeze(Context)

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bağlam dondurulmuşsa çağırılır.Called when the context is frozen.

(Devralındığı yer: ContextAttribute)
GetClientContextSink(IMessageSink)

Bir belirtme çizgisi havuzu oluşturur ve bir uzaktan iletişim çağrısının istemci sonundaki bağlam sınırında belirtilen havuz zincirinin önünde zincirlenir.Creates a CallOut sink and chains it in front of the provided chain of sinks at the context boundary on the client end of a remoting call.

GetHashCode()

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bu örneği için diyez kodunu döndürür ContextAttribute .Returns the hashcode for this instance of ContextAttribute.

(Devralındığı yer: ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

SynchronizedBağlam özelliğini belirtilen öğesine ekler IConstructionCallMessage .Adds the Synchronized context property to the specified IConstructionCallMessage.

GetServerContextSink(IMessageSink)

Eşitlenmiş bir dağıtım havuzu oluşturur ve bir uzaktan iletişim çağrısının sunucu sonundaki bağlam sınırında, belirtilen havuz zincirinin önüne zincirlenir.Creates a synchronized dispatch sink and chains it in front of the provided chain of sinks at the context boundary on the server end of a remoting call.

GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

(Devralındığı yer: Object)
IsContextOK(Context, IConstructionCallMessage)

Bağlam parametresinin bağlam özniteliğinin gereksinimlerini karşılayıp karşılamadığını gösteren bir Boole değeri döndürür.Returns a Boolean value indicating whether the context parameter meets the context attribute's requirements.

IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılınırsa, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Devralındığı yer: Attribute)
IsNewContextOK(Context)

Bu API, ürün altyapısını destekler ve doğrudan kodunuzdan kullanıma yönelik değildir.

Bağlam özelliğinin yeni bağlamla uyumlu olup olmadığını gösteren bir Boole değeri döndürür.Returns a Boolean value indicating whether the context property is compatible with the new context.

(Devralındığı yer: ContextAttribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılınırsa, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.Maps a set of names to a corresponding set of dispatch identifiers.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilen bir nesnenin tür bilgilerini alır.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.Provides access to properties and methods exposed by an object.

(Devralındığı yer: Attribute)

Şunlara uygulanır