Bagikan melalui


SynchronizationAttribute Kelas

Definisi

Memberlakukan domain sinkronisasi untuk konteks saat ini dan semua konteks yang berbagi instans yang sama.

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
Warisan
SynchronizationAttribute
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan penggunaan SynchronizationAttribute. Untuk contoh kode lengkap, lihat contoh untuk AsyncResult kelas .

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

Keterangan

Ketika atribut ini diterapkan ke objek, hanya satu utas yang dapat dijalankan dalam semua konteks yang berbagi instans properti ini. Ini dilakukan dengan berkontribusi sink yang mencegat dan menserialisasikan panggilan masuk untuk konteks masing-masing. Jika properti ditandai untuk masuk kembali, maka callout juga disadap. Intersepsi callout memungkinkan utas tunggu lainnya memasuki domain sinkronisasi untuk throughput maksimal.

Catatan

Ada dua kelas bernama SynchronizationAttribute : satu di System.Runtime.Remoting.Contexts namespace, dan yang lainnya di System.EnterpriseServices namespace. Kelas hanya System.EnterpriseServices.SynchronizationAttribute mendukung panggilan sinkron, dan hanya dapat digunakan dengan komponen yang dilayani. mendukung System.Runtime.Remoting.Contexts.SynchronizationAttribute panggilan sinkron dan asinkron, dan hanya dapat digunakan dengan objek terikat konteks. (Untuk informasi selengkapnya tentang objek terikat konteks, lihat ContextBoundObject kelas .)

Catatan

Kelas ini membuat permintaan tautan dan permintaan warisan di tingkat kelas. SecurityException dilemparkan ketika pemanggil langsung atau kelas turunan tidak memiliki izin infrastruktur. Untuk detail tentang tuntutan keamanan, lihat Permintaan Tautan dan Permintaan Warisan.

Konstruktor

SynchronizationAttribute()

Menginisialisasi instans SynchronizationAttribute baru kelas dengan nilai default.

SynchronizationAttribute(Boolean)

Menginisialisasi instans SynchronizationAttribute baru kelas dengan nilai Boolean yang menunjukkan apakah masuk kembali diperlukan.

SynchronizationAttribute(Int32)

Menginisialisasi instans SynchronizationAttribute baru kelas dengan bendera yang menunjukkan perilaku objek tempat atribut ini diterapkan.

SynchronizationAttribute(Int32, Boolean)

Menginisialisasi instans SynchronizationAttribute baru kelas dengan bendera yang menunjukkan perilaku objek tempat atribut ini diterapkan, dan nilai Boolean yang menunjukkan apakah diperlukan masuk kembali.

Bidang

AttributeName

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Menunjukkan nama atribut konteks.

(Diperoleh dari ContextAttribute)
NOT_SUPPORTED

Menunjukkan bahwa kelas tempat atribut ini diterapkan tidak dapat dibuat dalam konteks yang memiliki sinkronisasi. Bidang ini konstan.

REQUIRED

Menunjukkan bahwa kelas tempat atribut ini diterapkan harus dibuat dalam konteks yang memiliki sinkronisasi. Bidang ini konstan.

REQUIRES_NEW

Menunjukkan bahwa kelas tempat atribut ini diterapkan harus dibuat dalam konteks dengan instans baru properti sinkronisasi setiap kali. Bidang ini konstan.

SUPPORTED

Menunjukkan bahwa kelas tempat atribut ini diterapkan tidak bergantung pada apakah konteks memiliki sinkronisasi. Bidang ini konstan.

Properti

IsReEntrant

Mendapatkan atau menetapkan nilai Boolean yang menunjukkan apakah masuk kembali diperlukan.

Locked

Mendapatkan atau menetapkan nilai Boolean yang menunjukkan apakah Context penerapan instans SynchronizationAttribute ini dikunci.

Name

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Mendapatkan nama atribut konteks.

(Diperoleh dari ContextAttribute)
TypeId

Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute.

(Diperoleh dari Attribute)

Metode

Equals(Object)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Mengembalikan nilai Boolean yang menunjukkan apakah instans ini sama dengan objek yang ditentukan.

(Diperoleh dari ContextAttribute)
Freeze(Context)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Dipanggil ketika konteks dibekukan.

(Diperoleh dari ContextAttribute)
GetClientContextSink(IMessageSink)

Membuat sink CallOut dan menautkannya di depan rantai sink yang disediakan pada batas konteks pada klien akhir panggilan jarak jauh.

GetHashCode()

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Mengembalikan hashcode untuk instans ini .ContextAttribute

(Diperoleh dari ContextAttribute)
GetPropertiesForNewContext(IConstructionCallMessage)

Synchronized Menambahkan properti konteks ke yang ditentukanIConstructionCallMessage.

GetServerContextSink(IMessageSink)

Membuat sink pengiriman yang disinkronkan dan menautkannya di depan rantai sink yang disediakan pada batas konteks di akhir server panggilan jarak jauh.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
IsContextOK(Context, IConstructionCallMessage)

Mengembalikan nilai Boolean yang menunjukkan apakah parameter konteks memenuhi persyaratan atribut konteks.

IsDefaultAttribute()

Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan.

(Diperoleh dari Attribute)
IsNewContextOK(Context)

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Mengembalikan nilai Boolean yang menunjukkan apakah properti konteks kompatibel dengan konteks baru.

(Diperoleh dari ContextAttribute)
Match(Object)

Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu.

(Diperoleh dari Attribute)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka.

(Diperoleh dari Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1).

(Diperoleh dari Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Menyediakan akses ke properti dan metode yang diekspos oleh objek.

(Diperoleh dari Attribute)

Berlaku untuk