Bagikan melalui


Kelas CMsgThread

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Kelas CMsgThread adalah kelas alur pekerja yang mengantre permintaan ke utas antrean untuk penyelesaian secara asinkron. Untuk menggunakan kelas ini, dapatkan kelas Anda dari kelas tersebut dan ganti fungsi anggota CMsgThread::ThreadMessageProc . Fungsi anggota ThreadMessageProc menjalankan setiap permintaan. Fungsi klien Anda dan fungsi anggota ThreadMessageProc harus berbagi definisi umum parameter dalam objek CMsg .

Mekanisme yang dinegosiasikan memberi tahu utas pekerja untuk keluar. Biasanya, ini akan menjadi salah satu nilai kode pesan uMsg kelas CMsg .

Ada baiknya untuk mengirim pesan ini dari destruktor kelas turunan Anda, dan panggil fungsi anggota CMsgThread::WaitForThreadExit sebelum menyelesaikan penghancuran kelas turunan.

Anggota Data terproteksi Deskripsi
m_hSem Menunjukkan handel yang digunakan untuk sinyal.
m_Lock Melindungi akses ke daftar.
m_lWaiting Menunjukkan menunggu utas gratis.
m_ThreadQueue Mengambil alih fungsi anggota CMsgThread::GetThreadMsg dan memblokir hal-hal selain antrean ini.
Fungsi Anggota Deskripsi
CMsgThread Membuat objek CMsgThread .
CreateThread Membuat utas.
GetThreadHandle Mengambil handel utas.
GetThreadID Mengambil pengidentifikasi utas.
GetThreadPriority Mengambil prioritas utas saat ini.
PutThreadMsg Mengantrekan permintaan eksekusi oleh utas pekerja.
ResumeThread Melanjutkan pengoperasian utas pekerja.
SetThreadPriority Mengatur prioritas utas ke nilai baru.
SuspendThread Menangguhkan operasi utas yang sedang berjalan.
WaitForThreadExit Memblokir hingga utas keluar setelah panggilan ke fungsi anggota CMsgThread::SuspendThread .
Fungsi Anggota yang Dapat Diganti Deskripsi
GetThreadMsg Mengambil objek CMsg antrean yang berisi permintaan.
OnThreadInit Menyediakan inisialisasi pada utas.
ThreadMessageProc Memproses permintaan. Ini adalah fungsi anggota virtual murni.