PerformanceCounterCategory.Create Metoda

Definicja

Rejestruje niestandardową kategorię licznika wydajności i co najmniej jeden licznik z systemem.

Przeciążenia

Create(String, String, String, String)
Przestarzałe.
Przestarzałe.
Przestarzałe.

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.

Create(String, String, PerformanceCounterCategoryType, String, String)

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.

Create(String, String, CounterCreationDataCollection)
Przestarzałe.
Przestarzałe.
Przestarzałe.

Rejestruje niestandardową kategorię licznika wydajności zawierającą określone liczniki na komputerze lokalnym.

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Rejestruje niestandardową kategorię licznika wydajności zawierającą określone liczniki na komputerze lokalnym.

Create(String, String, String, String)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Przestroga

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202

Przestroga

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202

Przestroga

This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::String ^ counterHelp);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterName As String, counterHelp As String) As PerformanceCounterCategory

Parametry

categoryName
String

Nazwa niestandardowej kategorii licznika wydajności do utworzenia i zarejestrowania w systemie.

categoryHelp
String

Opis kategorii niestandardowej.

counterName
String

Nazwa nowego licznika NumberOfItems32typu , który ma zostać utworzony w ramach nowej kategorii.

counterHelp
String

Opis licznika skojarzonego z nową kategorią niestandardową.

Zwraca

Element PerformanceCounterCategory skojarzony z nową kategorią systemową lub obiektem wydajności.

Atrybuty

Wyjątki

counterName jest ciągiem null pustym ("").

-lub-

Licznik określony przez counterName już istnieje.

-lub-

counterName ma nieprawidłową składnię. Może zawierać znaki ukośnika odwrotnego ("\") lub mieć długość większą niż 80 znaków.

Kategoria już istnieje na komputerze lokalnym.

categoryName to null.

-lub-

counterHelp to null.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu tworzy element PerformanceCounterCategory i z PerformanceCounter tekstem pomocy dla każdego z nich przy użyciu Create(String, String, String, String) metody .

public static void Main(string[] args)
{
    string categoryName = "";
    string counterName = "";
    string categoryHelp = "";
    string counterHelp = "";
    PerformanceCounterCategory pcc;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        categoryHelp = args[2];
        counterHelp = args[3];
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    Console.WriteLine("Category name: \"{0}\"", categoryName);
    Console.WriteLine("Category help: \"{0}\"", categoryHelp);
    Console.WriteLine("Counter name:  \"{0}\"", counterName);
    Console.WriteLine("Counter help:  \"{0}\"", counterHelp);

    // Use the Create overload that creates a single counter.
    try
    {
        pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);
        Console.WriteLine("Category \"{0}\" created.", pcc.CategoryName);
    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to create the above category and counter:" + "\n" + ex.Message);
    }
}
Sub Main(ByVal args() As String)
    Dim categoryName As String = ""
    Dim counterName As String = ""
    Dim categoryHelp As String = ""
    Dim counterHelp As String = ""
    Dim pcc As PerformanceCounterCategory

    ' Copy the supplied arguments into the local variables.
    Try
        categoryName = args(0)
        counterName = args(1)
        categoryHelp = args(2)
        counterHelp = args(3)
    Catch ex As Exception
        ' Ignore the exception from non-supplied arguments.
    End Try

    Console.WriteLine("Category name: ""{0}""", categoryName)
    Console.WriteLine("Category help: ""{0}""", categoryHelp)
    Console.WriteLine("Counter name:  ""{0}""", counterName)
    Console.WriteLine("Counter help:  ""{0}""", counterHelp)

    ' Use the Create overload that creates a single counter.
    Try
        pcc = PerformanceCounterCategory.Create( _
            categoryName, categoryHelp, counterName, counterHelp)
        Console.WriteLine("Category ""{0}"" created.", pcc.CategoryName)

    Catch ex As Exception
        Console.WriteLine( _
            "Unable to create the above category and counter:" & _
            vbCrLf & ex.Message)
    End Try
End Sub

Uwagi

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy

Create(String, String, PerformanceCounterCategoryType, String, String)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::String ^ counterName, System::String ^ counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterName As String, counterHelp As String) As PerformanceCounterCategory

Parametry

categoryName
String

Nazwa niestandardowej kategorii licznika wydajności do utworzenia i zarejestrowania w systemie.

categoryHelp
String

Opis kategorii niestandardowej.

categoryType
PerformanceCounterCategoryType

Jedną z wartości określających PerformanceCounterCategoryType , czy kategoria to MultiInstance, SingleInstancelub Unknown.

counterName
String

Nazwa nowego licznika do utworzenia w ramach nowej kategorii.

counterHelp
String

Opis licznika skojarzonego z nową kategorią niestandardową.

Zwraca

Element PerformanceCounterCategory skojarzony z nową kategorią systemową lub obiektem wydajności.

Wyjątki

counterName jest ciągiem null pustym ("").

-lub-

Licznik określony przez counterName już istnieje.

-lub-

counterName ma nieprawidłową składnię. Może zawierać znaki ukośnika odwrotnego ("\") lub mieć długość większą niż 80 znaków.

Kategoria już istnieje na komputerze lokalnym.

categoryName to null.

-lub-

counterHelp to null.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu przedstawia użycie Create metody . W przykładzie pokazano, jak utworzyć niestandardową kategorię licznika wydajności pojedynczego wystąpienia.

Console.WriteLine("Creating Inventory custom counter");
if (!PerformanceCounterCategory.Exists("Inventory"))
    PerformanceCounterCategory.Create("Inventory",
        "Truck inventory",
        PerformanceCounterCategoryType.SingleInstance,
        "Trucks", "Number of trucks on hand");
Console.WriteLine("Creating Inventory custom counter")
If Not PerformanceCounterCategory.Exists("Inventory") Then
    PerformanceCounterCategory.Create("Inventory", "Truck inventory", PerformanceCounterCategoryType.SingleInstance, "Trucks", "Number of trucks on hand")
End If

Uwagi

Parametr categoryType określa, czy kategoria licznika wydajności to jedno wystąpienie, czy wiele wystąpień. Domyślnie kategoria jest pojedynczym wystąpieniem podczas tworzenia i staje się wieloma wystąpieniami po dodaniu innego wystąpienia. Kategorie są tworzone podczas konfigurowania aplikacji, a wystąpienia są dodawane w czasie wykonywania. W .NET Framework wersji 1.0 i 1.1 nie trzeba wiedzieć, czy kategoria licznika wydajności to wiele wystąpień lub pojedyncze wystąpienie. W .NET Framework 2.0 wyliczenie PerformanceCounterCategoryType służy do wskazania, czy licznik wydajności może mieć wiele wystąpień.

Kategorie liczników wydajności zainstalowane z .NET Framework 2.0 używają oddzielnej pamięci udostępnionej, a każda kategoria licznika wydajności ma własną pamięć. Rozmiar oddzielnej pamięci udostępnionej można określić, tworząc dword o nazwie FileMappingSize w kluczu rejestru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nazwę> kategorii\Wydajność. Wartość FileMappingSize jest ustawiona na rozmiar pamięci udostępnionej kategorii. Domyślny rozmiar to 131072 dziesiętny. Jeśli wartość FileMappingSize nie jest obecna, fileMappingSize jest używana wartość atrybutu elementu performanceCounters określonego w pliku Machine.config, powodując dodatkowe obciążenie na potrzeby przetwarzania plików konfiguracji. Możesz zrealizować poprawę wydajności uruchamiania aplikacji, ustawiając rozmiar mapowania plików w rejestrze.

Uwaga

Zdecydowanie zaleca się utworzenie nowych kategorii liczników wydajności podczas instalacji aplikacji, a nie podczas wykonywania aplikacji. Dzięki temu system operacyjny może odświeżyć listę zarejestrowanych kategorii liczników wydajności. Jeśli lista nie została odświeżona, próba użycia kategorii zakończy się niepowodzeniem.

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy

Create(String, String, CounterCreationDataCollection)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Przestroga

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Przestroga

This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Przestroga

This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.

Rejestruje niestandardową kategorię licznika wydajności zawierającą określone liczniki na komputerze lokalnym.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::CounterCreationDataCollection ^ counterData);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory

Parametry

categoryName
String

Nazwa niestandardowej kategorii licznika wydajności do utworzenia i zarejestrowania w systemie.

categoryHelp
String

Opis kategorii niestandardowej.

counterData
CounterCreationDataCollection

Element CounterCreationDataCollection określający liczniki do utworzenia w ramach nowej kategorii.

Zwraca

Element PerformanceCounterCategory skojarzony z nową kategorią niestandardową lub obiektem wydajności.

Atrybuty

Wyjątki

Nazwa licznika counterData określona w kolekcji to null lub pusty ciąg ("").

-lub-

Licznik określony w kolekcji counterData już istnieje.

-lub-

Parametr counterName ma nieprawidłową składnię. Może zawierać znaki ukośnika odwrotnego ("\") lub mieć długość większą niż 80 znaków.

Parametr categoryName to null.

Kategoria już istnieje na komputerze lokalnym.

-lub-

Układ kolekcji counterData jest niepoprawny dla liczników podstawowych. Licznik typu AverageCount64, , AverageTimer32, CounterMultiTimer100NsCounterMultiTimer100NsInverseCounterMultiTimerInverseCounterMultiTimerRawFractionlub SampleFractionSampleCounter musi być natychmiast obserwowany przez jeden z podstawowych typów liczników (AverageBase, MultiBase, RawBaselub ).SampleBase

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu określa, czy PerformanceCounterCategory istnieje obiekt o nazwie "orders". Jeśli tak nie jest, tworzy PerformanceCounterCategory obiekt przy użyciu CounterCreationDataCollection obiektu, który zawiera dwa liczniki wydajności.

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

Uwagi

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs
Źródło:
PerformanceCounterCategory.cs

Rejestruje niestandardową kategorię licznika wydajności zawierającą określone liczniki na komputerze lokalnym.

public:
 static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::Diagnostics::CounterCreationDataCollection ^ counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, System.Diagnostics.CounterCreationDataCollection counterData);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterData As CounterCreationDataCollection) As PerformanceCounterCategory

Parametry

categoryName
String

Nazwa niestandardowej kategorii licznika wydajności do utworzenia i zarejestrowania w systemie.

categoryHelp
String

Opis kategorii niestandardowej.

counterData
CounterCreationDataCollection

Element CounterCreationDataCollection określający liczniki do utworzenia w ramach nowej kategorii.

Zwraca

Element PerformanceCounterCategory skojarzony z nową kategorią niestandardową lub obiektem wydajności.

Wyjątki

Nazwa licznika counterData określona w kolekcji to null lub pusty ciąg ("").

-lub-

Licznik określony w kolekcji counterData już istnieje.

-lub-

counterName ma nieprawidłową składnię. Może zawierać znaki ukośnika odwrotnego ("\") lub mieć długość większą niż 80 znaków.

categoryName to null.

-lub-

counterData to null.

categoryType wartość znajduje się poza zakresem następujących wartości: MultiInstance, SingleInstancelub Unknown.

Kategoria już istnieje na komputerze lokalnym.

-lub-

Układ kolekcji counterData jest niepoprawny dla liczników podstawowych. Licznik typu AverageCount64, , AverageTimer32, CounterMultiTimer100NsSampleCounterCounterMultiTimer100NsInverseCounterMultiTimerSampleFractionRawFractionCounterMultiTimerInverselub musi być natychmiast zgodny z jednym z podstawowych typów liczników (AverageBase, MultiBase, RawBaselub ).SampleBase

Wywołanie podstawowego interfejsu API systemu nie powiodło się.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

Poniższy przykład kodu przedstawia użycie Create metody . W przykładzie pokazano, jak utworzyć niestandardową kategorię licznika wydajności wielu wystąpień dla liczby zamówień na sekundę.

CounterCreationData data1 = new CounterCreationData("Trucks",
    "Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
    "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
    PerformanceCounterCategory.Create("Orders",
        "Processed orders",
        PerformanceCounterCategoryType.MultiInstance,
        ccds);
Dim data1 As New CounterCreationData("Trucks", "Number of orders", PerformanceCounterType.NumberOfItems32)
Dim data2 As New CounterCreationData("Rate of sales", "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32)
Dim ccds As New CounterCreationDataCollection()
ccds.Add(data1)
ccds.Add(data2)
Console.WriteLine("Creating Orders custom counter.")
If Not PerformanceCounterCategory.Exists("Orders") Then
    PerformanceCounterCategory.Create("Orders", "Processed orders", PerformanceCounterCategoryType.MultiInstance, ccds)
End If

Uwagi

Parametr categoryType określa, czy kategoria licznika wydajności to jedno wystąpienie, czy wiele wystąpień. Domyślnie kategoria jest pojedynczym wystąpieniem podczas tworzenia i staje się wieloma wystąpieniami po dodaniu innego wystąpienia. Kategorie są tworzone podczas konfigurowania aplikacji, a wystąpienia są dodawane w czasie wykonywania. W .NET Framework wersji 1.0 i 1.1 nie trzeba wiedzieć, czy kategoria licznika wydajności to wiele wystąpień lub pojedyncze wystąpienie. W .NET Framework 2.0 wyliczenie PerformanceCounterCategoryType służy do wskazania, czy licznik wydajności może mieć wiele wystąpień.

Kategorie liczników wydajności zainstalowane z .NET Framework 2.0 używają oddzielnej pamięci udostępnionej, a każda kategoria licznika wydajności ma własną pamięć. Rozmiar oddzielnej pamięci udostępnionej można określić, tworząc dword o nazwie FileMappingSize w kluczu rejestru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nazwę> kategorii\Wydajność. Wartość FileMappingSize jest ustawiona na rozmiar pamięci udostępnionej kategorii. Domyślny rozmiar to 131072 dziesiętny. Jeśli wartość FileMappingSize nie jest obecna, fileMappingSize jest używana wartość atrybutu elementu performanceCounters określonego w pliku Machine.config, powodując dodatkowe obciążenie na potrzeby przetwarzania plików konfiguracji. Możesz zrealizować poprawę wydajności uruchamiania aplikacji, ustawiając rozmiar mapowania plików w rejestrze.

Uwaga

Zdecydowanie zaleca się utworzenie nowych kategorii liczników wydajności podczas instalacji aplikacji, a nie podczas wykonywania aplikacji. Dzięki temu system operacyjny może odświeżyć listę zarejestrowanych kategorii liczników wydajności. Jeśli lista nie została odświeżona, próba użycia kategorii zakończy się niepowodzeniem.

Uwaga

Aby odczytać liczniki wydajności z sesji logowania nieinterakcyjnego w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Zobacz też

Dotyczy