Bagikan melalui


PerformanceCounterCategory.Exists Metode

Definisi

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)

Sumber:
PerformanceCounterCategory.cs
Sumber:
PerformanceCounterCategory.cs
Sumber:
PerformanceCounterCategory.cs

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)

Sumber:
PerformanceCounterCategory.cs
Sumber:
PerformanceCounterCategory.cs
Sumber:
PerformanceCounterCategory.cs

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.

Lihat juga

Berlaku untuk