Share via


PerformanceCounterCategory.Exists Yöntem

Tanım

Kategorinin sistemde kayıtlı olup olmadığını belirler.

Aşırı Yüklemeler

Exists(String)

Kategorinin yerel bilgisayarda kayıtlı olup olmadığını belirler.

Exists(String, String)

Kategorinin belirtilen bilgisayarda kayıtlı olup olmadığını belirler.

Exists(String)

Kaynak:
PerformanceCounterCategory.cs
Kaynak:
PerformanceCounterCategory.cs
Kaynak:
PerformanceCounterCategory.cs

Kategorinin yerel bilgisayarda kayıtlı olup olmadığını belirler.

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

Parametreler

categoryName
String

Aranacak performans sayacı kategorisinin adı.

Döndürülenler

true kategori kayıtlıysa; aksi takdirde , false.

Özel durumlar

categoryName parametresidirnull.

categoryName parametresi boş bir dizedir ("").

Temel alınan sistem API'sine yapılan çağrı başarısız oldu.

Yönetici ayrıcalıkları olmadan yürütülen kod bir performans sayacını okumaya çalıştı.

Örnekler

Aşağıdaki kod örneği, "orders" adlı bir PerformanceCounterCategory nesnenin mevcut olup olmadığını belirler. Aksi takdirde, iki performans sayacı içeren bir CounterCreationDataCollection nesne kullanarak nesnesini oluştururPerformanceCounterCategory.

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

Açıklamalar

Makinedeki Exists tüm performans sayaçları kullanılabilirlik açısından denetlenirken yönteminin kullanılması fark edilebilir bir performans cezasına neden olabilir. Yalnızca bir performans sayacına yazıyorsanız, uygulama yüklendiğinde performans sayacını oluşturarak ve sayaç erişilirken kategorinin mevcut olduğunu varsayarak performans sayaçları için genel arama önleyebilirsiniz. Performans sayaçlarından okurken performans sayacı aramasını önlemenin bir yolu yoktur.

Not

Windows Vista ve sonraki sürümlerde, Windows XP Professional x64 Edition'da veya Windows Server 2003'te etkileşimli olmayan bir oturumdan performans sayaçlarını okumak için, Performans İzleyicisi Kullanıcıları grubunun üyesi olmanız veya yönetici ayrıcalıklarına sahip olmanız gerekir.

Windows Vista ve sonraki sürümlerde performans sayaçlarına erişmek için ayrıcalıklarınızı yükseltmek zorunda kalmamak için kendinizi Performans İzleyicisi Kullanıcıları grubuna ekleyin.

Windows Vista ve sonraki sürümlerde, Kullanıcı Hesabı Denetimi (UAC) bir kullanıcının ayrıcalıkları belirler. Yerleşik Yöneticiler grubunun bir üyesi iseniz, size iki çalışma zamanı erişim belirteci atanır: Standart kullanıcı erişim belirteci ve yönetici erişim belirteci. Varsayılan olarak, standart kullanıcı rolünde olursunuz. Performans sayaçlarına erişen kodu yürütmek için öncelikle ayrıcalıklarınızı standart kullanıcıdan yöneticiye yükseltmeniz gerekir. Bir uygulamayı başlattığınızda, uygulama simgesine sağ tıklayıp yönetici olarak çalıştırmak istediğinizi belirterek bunu yapabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır

Exists(String, String)

Kaynak:
PerformanceCounterCategory.cs
Kaynak:
PerformanceCounterCategory.cs
Kaynak:
PerformanceCounterCategory.cs

Kategorinin belirtilen bilgisayarda kayıtlı olup olmadığını belirler.

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

Parametreler

categoryName
String

Aranacak performans sayacı kategorisinin adı.

machineName
String

Kategori için incelenen bilgisayarın adı.

Döndürülenler

true kategori kayıtlıysa; aksi takdirde , false.

Özel durumlar

categoryName parametresidirnull.

categoryName parametresi boş bir dizedir ("").

-veya-

machineName Parametre geçersiz.

Temel alınan sistem API'sine yapılan çağrı başarısız oldu.

Ağ yolu bulunamıyor.

Çağıranın gerekli izni yok.

-veya-

Yönetici ayrıcalıkları olmadan yürütülen kod bir performans sayacını okumaya çalıştı.

Örnekler

Aşağıdaki örnek adlı Orders bir PerformanceCounterCategory nesnenin mevcut olup olmadığını belirler. Yoksa, örnek iki performans sayacı içeren bir CounterCreationDataCollection nesne kullanarak nesnesini oluştururPerformanceCounterCategory.

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

Açıklamalar

Makinedeki Exists tüm performans sayaçları kullanılabilirlik açısından denetlenirken yönteminin kullanılması fark edilebilir bir performans cezasına neden olabilir. Yalnızca bir performans sayacına yazıyorsanız, uygulama yüklendiğinde performans sayacını oluşturarak ve sayaç erişilirken kategorinin mevcut olduğunu varsayarak performans sayaçları için genel arama önleyebilirsiniz. Performans sayaçlarından okurken performans sayacı aramasını önlemenin bir yolu yoktur.

Not

Windows Vista ve sonraki sürümlerde, Windows XP Professional x64 Edition'da veya Windows Server 2003'te etkileşimli olmayan bir oturumdan performans sayaçlarını okumak için, Performans İzleyicisi Kullanıcıları grubunun üyesi olmanız veya yönetici ayrıcalıklarına sahip olmanız gerekir.

Windows Vista ve sonraki sürümlerde performans sayaçlarına erişmek için ayrıcalıklarınızı yükseltmek zorunda kalmamak için kendinizi Performans İzleyicisi Kullanıcıları grubuna ekleyin.

Windows Vista ve sonraki sürümlerde, Kullanıcı Hesabı Denetimi (UAC) bir kullanıcının ayrıcalıkları belirler. Yerleşik Yöneticiler grubunun bir üyesi iseniz, size iki çalışma zamanı erişim belirteci atanır: Standart kullanıcı erişim belirteci ve yönetici erişim belirteci. Varsayılan olarak, standart kullanıcı rolünde olursunuz. Performans sayaçlarına erişen kodu yürütmek için öncelikle ayrıcalıklarınızı standart kullanıcıdan yöneticiye yükseltmeniz gerekir. Bir uygulamayı başlattığınızda, uygulama simgesine sağ tıklayıp yönetici olarak çalıştırmak istediğinizi belirterek bunu yapabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır