PerformanceCounterCategory.Exists Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan apakah kategori terdaftar pada sistem.
Overload
Exists(String) |
Menentukan apakah kategori terdaftar di komputer lokal. |
Exists(String, String) |
Menentukan apakah kategori terdaftar pada komputer yang ditentukan. |
Exists(String)
Menentukan apakah kategori terdaftar di komputer lokal.
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists (string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
Parameter
- categoryName
- String
Nama kategori penghitung kinerja yang akan dicari.
Mengembalikan
true
jika kategori terdaftar; jika tidak, false
.
Pengecualian
Parameternya categoryName
adalah null
.
Parameter categoryName
adalah string kosong ("").
Panggilan ke API sistem yang mendasar gagal.
Kode yang dijalankan tanpa hak administratif mencoba membaca penghitung kinerja.
Contoh
Contoh kode berikut menentukan apakah objek PerformanceCounterCategory bernama "orders" ada. Jika tidak, objek akan dibuat PerformanceCounterCategory dengan menggunakan CounterCreationDataCollection objek yang berisi dua penghitung kinerja.
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
Keterangan
Penggunaan metode ini Exists dapat mengakibatkan penalti performa yang nyata sementara semua penghitung kinerja pada komputer diperiksa ketersediaannya. Jika Anda hanya menulis ke penghitung kinerja, Anda dapat menghindari pencarian global untuk penghitung kinerja dengan membuat penghitung kinerja ketika aplikasi diinstal dan dengan asumsi kategori ada saat mengakses penghitung. Tidak ada cara untuk menghindari pencarian penghitung kinerja saat membaca dari penghitung kinerja.
Catatan
Untuk membaca penghitung kinerja dari sesi masuk non-interaktif di Windows Vista dan yang lebih baru, Windows XP Professional x64 Edition, atau Windows Server 2003, Anda harus menjadi anggota grup Pengguna Monitor Performa atau memiliki hak administratif.
Untuk menghindari harus meningkatkan hak istimewa Anda untuk mengakses penghitung kinerja di Windows Vista dan yang lebih baru, tambahkan diri Anda ke grup Pengguna Monitor Performa.
Di Windows Vista dan yang lebih baru, Kontrol Akun Pengguna (User Account Control atau UAC) menentukan hak istimewa pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengakses penghitung kinerja, Anda harus terlebih dahulu meningkatkan hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.
Lihat juga
Berlaku untuk
Exists(String, String)
Menentukan apakah kategori terdaftar pada komputer yang ditentukan.
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists (string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
Parameter
- categoryName
- String
Nama kategori penghitung kinerja yang akan dicari.
- machineName
- String
Nama komputer yang akan diperiksa untuk kategori.
Mengembalikan
true
jika kategori terdaftar; jika tidak, false
.
Pengecualian
Parameternya categoryName
adalah null
.
Parameter categoryName
adalah string kosong ("").
-atau-
Parameter machineName
tidak valid.
Panggilan ke API sistem yang mendasar gagal.
Jalur jaringan tidak dapat ditemukan.
Pemanggil tidak memiliki izin yang diperlukan.
-atau-
Kode yang dijalankan tanpa hak administratif mencoba membaca penghitung kinerja.
Contoh
Contoh berikut menentukan apakah objek PerformanceCounterCategory bernama Orders
ada. Jika tidak ada, contoh membuat PerformanceCounterCategory objek dengan menggunakan CounterCreationDataCollection objek yang berisi dua penghitung kinerja.
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
Keterangan
Penggunaan metode ini Exists dapat mengakibatkan penalti performa yang nyata sementara semua penghitung kinerja pada komputer diperiksa ketersediaannya. Jika Anda hanya menulis ke penghitung kinerja, Anda dapat menghindari pencarian global untuk penghitung kinerja dengan membuat penghitung kinerja ketika aplikasi diinstal dan dengan asumsi kategori ada saat mengakses penghitung. Tidak ada cara untuk menghindari pencarian penghitung kinerja saat membaca dari penghitung kinerja.
Catatan
Untuk membaca penghitung kinerja dari sesi masuk non-interaktif di Windows Vista dan yang lebih baru, Windows XP Professional x64 Edition, atau Windows Server 2003, Anda harus menjadi anggota grup Pengguna Monitor Performa atau memiliki hak administratif.
Untuk menghindari harus meningkatkan hak istimewa Anda untuk mengakses penghitung kinerja di Windows Vista dan yang lebih baru, tambahkan diri Anda ke grup Pengguna Monitor Performa.
Di Windows Vista dan yang lebih baru, Kontrol Akun Pengguna (User Account Control atau UAC) menentukan hak istimewa pengguna. Jika Anda adalah anggota grup Administrator Bawaan, Anda diberi dua token akses run-time: token akses pengguna standar dan token akses administrator. Secara default, Anda berada dalam peran pengguna standar. Untuk menjalankan kode yang mengakses penghitung kinerja, Anda harus terlebih dahulu meningkatkan hak istimewa Anda dari pengguna standar ke administrator. Anda dapat melakukan ini saat memulai aplikasi dengan mengeklik kanan ikon aplikasi dan menunjukkan bahwa Anda ingin menjalankan sebagai administrator.