Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menaikkan jumlah referensi internal pengguna.
Sintaks
virtual VOID ReferenceUser(
VOID
) = 0;
Parameter
Metode ini tidak memerlukan parameter.
Keamanan Thread
Kelas yang mengimplementasikan antarmuka IHttpUser aman untuk ReferenceUser metode dan DereferenceUser .
Keterangan
Kelas yang mengimplementasikan IHttpUser antarmuka menggunakan penghitungan referensi yang aman untuk manajemen memori. IHttpUser Saat pointer dibangun, jumlah referensi internal (privatevariabel anggota) diatur ke 1. Ketika metode dipanggil ReferenceUser , jumlah referensi ini bertambah 1. Ketika metode dipanggil DereferenceUser , jumlah referensi yang sama ini dikurangi oleh 1. Antarmuka IHttpUser dihapus dari tumpukan hanya ketika jumlah referensi masuk ke 0. Skema ini menjamin bahwa IHttpUser pointer tidak akan dihapus sampai klien terakhir dari pointer tersebut DereferenceUser memanggil metode .
Catatan untuk Pelaksana
Implementasi ReferenceUser metode dan DereferenceUser harus aman untuk thread untuk pointer IHttpUser . Pelaksana hanya boleh menyediakan private atau protected destruktor yang dipanggil hanya ketika jumlah referensi masuk ke 0.
Catatan untuk Penelepon
Klien tidak boleh mencoba mentransmisikan IHttpUser antarmuka ke kelas yang lebih spesifik dan kemudian memanggil delete langsung; klien harus memanggil ReferenceUser metode tepat sekali ketika pointer ke IHttpUser antarmuka diambil, dan kemudian memanggil DereferenceUser metode ketika IHttpUser antarmuka tidak akan lagi diakses. Anda harus memanggil ReferenceUser metode dan DereferenceUser sedini mungkin dan selambat mungkin, masing-masing, untuk menjamin bahwa IHttpUser pointer akan valid pada tumpukan ketika diakses dan dihapus ketika tidak lagi diperlukan.
Contoh
Contoh kode berikut menunjukkan kelas yang disebut MyHttpUser yang mengimplementasikan IHttpUser antarmuka.
// Create a class that implements the IHttpUser interface.
class MyHttpUser : public IHttpUser
{
public:
// Create a public constructor.
// Set the internal reference count to 1.
MyHttpUser()
{
m_cRefs = 1;
}
// Increment the internal reference count.
virtual VOID ReferenceUser(VOID)
{
InterlockedIncrement(&m_cRefs);
}
// Decrement the internal reference count.
virtual VOID DereferenceUser(VOID)
{
// Decrement the reference count and call delete this
// if the count is 0.
if (0 == InterlockedDecrement(&m_cRefs))
{
delete this;
}
}
private:
// Create a private destructor called from DereferenceUser.
virtual ~MyHttpUser()
{
}
// Create a private reference count member.
LONG m_cRefs;
}
Persyaratan
| Jenis | Deskripsi |
|---|---|
| Klien | - IIS 7.0 di Windows Vista - IIS 7.5 di Windows 7 - IIS 8.0 di Windows 8 - IIS 10.0 pada Windows 10 |
| Server | - IIS 7.0 di Windows Server 2008 - IIS 7.5 di Windows Server 2008 R2 - IIS 8.0 di Windows Server 2012 - IIS 8.5 di Windows Server 2012 R2 - IIS 10.0 di Windows Server 2016 |
| Produk | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
| Header | Httpserv.h |