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.
Mengurangi jumlah referensi internal pengguna.
Sintaks
virtual VOID DereferenceUser(
VOID
) = 0;
Parameter
Metode ini tidak memerlukan parameter.
Keamanan Thread
Kelas yang mengimplementasikan antarmuka IHttpUser aman untuk ReferenceUser dan DereferenceUser metode.
Keterangan
Kelas yang mengimplementasikan IHttpUser antarmuka menggunakan penghitungan referensi yang aman untuk manajemen memori utas. Saat pointer IHttpUser dibangun, jumlah referensi internal ( private variabel 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. Hanya ketika jumlah referensi masuk ke 0 adalah antarmuka yang IHttpUser dihapus dari tumpukan. Skema ini menjamin bahwa IHttpUser pointer tidak akan dihapus sampai klien terakhir pointer tersebut DereferenceUser memanggil metode .
Catatan untuk Pelaksana
Implementasi ReferenceUser metode dan DereferenceUser harus aman untuk thread untuk pointer IHttpUser . Pelaksana hanya boleh menyediakan destruktor privat atau terlindungi yang hanya dipanggil 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 secara langsung; klien harus memanggil ReferenceUser metode tepat sekali ketika penunjuk 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 penunjuk IHttpUser 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()
{
}
//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 |