SynchronizationAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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) |
|
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) |