Bagikan melalui


Kelas CComSingleThreadModel

Kelas ini menyediakan metode untuk meningkatkan dan mengurangi nilai variabel.

Sintaks

class CComSingleThreadModel

Anggota

Typedef Publik

Nama Deskripsi
CComSingleThreadModel::AutoCriticalSection Mereferensikan kelas CComFakeCriticalSection.
CComSingleThreadModel::CriticalSection CComFakeCriticalSectionKelas referensi .
CComSingleThreadModel::ThreadModelNoCS CComSingleThreadModelReferensi .

Metode Publik

Nama Deskripsi
CComSingleThreadModel::D ecrement Mengurangi nilai variabel yang ditentukan. Implementasi ini tidak aman untuk utas.
CComSingleThreadModel::Increment Menaikkan nilai variabel yang ditentukan. Implementasi ini tidak aman untuk utas.

Keterangan

CComSingleThreadModel menyediakan metode untuk meningkatkan dan mengurangi nilai variabel. Tidak seperti CComMultiThreadModel dan CComMultiThreadModelNoCS, metode ini tidak aman untuk thread.

Biasanya, Anda menggunakan CComSingleThreadModel melalui salah satu dari dua typedef nama, baik CComObjectThreadModel atau CComGlobalsThreadModel. Kelas yang dirujuk oleh masing-masing typedef tergantung pada model utas yang digunakan, seperti yang ditunjukkan dalam tabel berikut:

typedef Model utas tunggal Model utas apartemen Model utas gratis
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

CComSingleThreadModel itu sendiri mendefinisikan tiga typedef nama. ThreadModelNoCSCComSingleThreadModelreferensi . AutoCriticalSection dan CriticalSection kelas referensi CComFakeCriticalSection, yang menyediakan metode kosong yang terkait dengan mendapatkan dan merilis kepemilikan bagian penting.

Persyaratan

Header: atlbase.h

CComSingleThreadModel::AutoCriticalSection

Saat menggunakan CComSingleThreadModel, nama AutoCriticalSection mereferensikan typedef kelas CComFakeCriticalSection.

typedef CComFakeCriticalSection AutoCriticalSection;

Keterangan

Karena CComFakeCriticalSection tidak menyediakan bagian penting, metodenya tidak melakukan apa pun.

CComMultiThreadModel dan CComMultiThreadModelNoCS berisi definisi untuk AutoCriticalSection. Tabel berikut menunjukkan hubungan antara kelas model utas dan kelas bagian penting yang dirujuk oleh AutoCriticalSection:

Kelas yang ditentukan dalam Kelas yang dirujuk
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Selain AutoCriticalSection, Anda dapat menggunakan typedef nama CriticalSection. Anda tidak boleh menentukan AutoCriticalSection dalam objek global atau anggota kelas statis jika Anda ingin menghilangkan kode startup CRT.

Contoh

Lihat CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::CriticalSection

Saat menggunakan CComSingleThreadModel, nama CriticalSection mereferensikan typedef kelas CComFakeCriticalSection.

typedef CComFakeCriticalSection CriticalSection;

Keterangan

Karena CComFakeCriticalSection tidak menyediakan bagian penting, metodenya tidak melakukan apa pun.

CComMultiThreadModel dan CComMultiThreadModelNoCS berisi definisi untuk CriticalSection. Tabel berikut menunjukkan hubungan antara kelas model utas dan kelas bagian penting yang dirujuk oleh CriticalSection:

Kelas yang ditentukan dalam Kelas yang dirujuk
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Selain CriticalSection, Anda dapat menggunakan typedef nama AutoCriticalSection. Anda tidak boleh menentukan AutoCriticalSection dalam objek global atau anggota kelas statis jika Anda ingin menghilangkan kode startup CRT.

Contoh

Lihat CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::D ecrement

Fungsi statis ini mengurangi nilai variabel yang diacu oleh p.

static ULONG WINAPI Decrement(LPLONG p) throw();

Parameter

p
[di] Penunjuk ke variabel yang akan diderementasi.

Tampilkan Nilai

Hasil dari dekremen.

CComSingleThreadModel::Increment

Fungsi statis ini menaikkan nilai variabel yang diacu oleh p.

static ULONG WINAPI Increment(LPLONG p) throw();

Parameter

p
[di] Penunjuk ke variabel yang akan dinaikkan.

Tampilkan Nilai

Hasil dari kenaikan.

CComSingleThreadModel::ThreadModelNoCS

Saat menggunakan CComSingleThreadModel, typedef nama ThreadModelNoCS hanya mereferensikan CComSingleThreadModel.

typedef CComSingleThreadModel ThreadModelNoCS;

Keterangan

CComMultiThreadModel dan CComMultiThreadModelNoCS berisi definisi untuk ThreadModelNoCS. Tabel berikut menunjukkan hubungan antara kelas model utas dan kelas yang dirujuk oleh ThreadModelNoCS:

Kelas yang ditentukan dalam Kelas yang dirujuk
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

Contoh

Lihat CComMultiThreadModel::AutoCriticalSection.

Lihat juga

Gambaran Umum Kelas