Monitor.Pulse(Object) Metode

Definisi

Memberi tahu utas dalam antrean menunggu perubahan dalam status objek terkunci.

public:
 static void Pulse(System::Object ^ obj);
public static void Pulse(object obj);
static member Pulse : obj -> unit
Public Shared Sub Pulse (obj As Object)

Parameter

obj
Object

Objek yang dinanti utas.

Pengecualian

Parameternya obj adalah null.

Utas panggilan tidak memiliki kunci untuk objek yang ditentukan.

Keterangan

Hanya pemilik kunci saat ini yang dapat memberi sinyal objek tunggu menggunakan Pulse.

Utas yang saat ini memiliki kunci pada objek yang ditentukan memanggil metode ini untuk memberi sinyal utas berikutnya sejalan untuk kunci. Setelah menerima denyut nadi, utas tunggu dipindahkan ke antrean siap. Ketika utas yang dipanggil Pulse melepaskan kunci, utas berikutnya dalam antrean siap (yang belum tentu utas yang berdebu) memperoleh kunci.

Important

Kelas Monitor tidak mempertahankan status yang menunjukkan bahwa metode telah dipanggil Pulse . Dengan demikian, jika Anda memanggil Pulse ketika tidak ada utas yang menunggu, utas Wait berikutnya yang memanggil blok seolah-olah Pulse belum pernah dipanggil. Jika dua utas menggunakan Pulse dan Wait untuk berinteraksi, ini dapat mengakibatkan kebuntuan. Berbeda dengan perilaku AutoResetEvent kelas: Jika Anda memberi sinyal AutoResetEvent dengan memanggil metodenya Set , dan tidak ada utas yang menunggu, AutoResetEvent sisa-sisa dalam keadaan tersinyal sampai utas WaitOnememanggil , , WaitAnyatau WaitAll. Rilis AutoResetEvent yang utas dan kembali ke status tidak ditandatangani.

Perhatikan bahwa objek yang disinkronkan menyimpan beberapa referensi, termasuk referensi ke utas yang saat ini memegang kunci, referensi ke antrean siap, yang berisi utas yang siap untuk mendapatkan kunci, dan referensi ke antrean tunggu, yang berisi utas yang menunggu pemberitahuan perubahan status objek.

Metode Pulse, PulseAll, dan Wait harus dipanggil dari dalam blok kode yang disinkronkan.

Untuk memberi sinyal beberapa utas, gunakan PulseAll metode .

Berlaku untuk

Lihat juga