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