PerformanceCounterCategory.Create Metoda

Definicja

Rejestruje niestandardową kategorię licznika wydajności oraz co najmniej jeden licznik w systemie.Registers a custom performance counter category and one or more counters with the system.

Przeciążenia

Create(String, String, String, String)
Nieaktualne.
Nieaktualne.
Nieaktualne.

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.Registers a custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

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

Rejestruje kategorię niestandardowego licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.Registers the custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

Create(String, String, CounterCreationDataCollection)
Nieaktualne.
Nieaktualne.
Nieaktualne.

Rejestruje kategorię niestandardowego licznika wydajności zawierającej określone liczniki na komputerze lokalnym.Registers the custom performance counter category containing the specified counters on the local computer.

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Rejestruje kategorię niestandardowego licznika wydajności zawierającej określone liczniki na komputerze lokalnym.Registers the custom performance counter category containing the specified counters on the local computer.

Create(String, String, String, String)

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

Use another overload that uses PerformanceCounterCategoryType instead

Rejestruje niestandardową kategorię licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.Registers a custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

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);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("Use another overload that uses PerformanceCounterCategoryType instead")]
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
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("Use another overload that uses PerformanceCounterCategoryType instead")>]
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 kategorii niestandardowego licznika wydajności do tworzenia i rejestrowania w systemie.The name of the custom performance counter category to create and register with the system.

categoryHelp
String

Opis kategorii niestandardowej.A description of the custom category.

counterName
String

Nazwa nowego licznika typu NumberOfItems32 , który ma zostać utworzony jako część nowej kategorii.The name of a new counter, of type NumberOfItems32, to create as part of the new category.

counterHelp
String

Opis licznika, który jest skojarzony z nową kategorią niestandardową.A description of the counter that is associated with the new custom category.

Zwraca

PerformanceCounterCategory

, PerformanceCounterCategory Który jest skojarzony z nową kategorią systemu lub obiektem wydajności.A PerformanceCounterCategory that is associated with the new system category, or performance object.

Atrybuty

Wyjątki

counterName jest null lub jest pustym ciągiem ("").counterName is null or is an empty string ("").

-lub--or- Licznik, który jest określony przez counterName już istnieje.The counter that is specified by counterName already exists.

-lub--or- counterName ma nieprawidłową składnię.counterName has invalid syntax. Może zawierać znaki ukośnika odwrotnego (" \ ") lub mieć długość większą niż 80 znaków.It might contain backslash characters ("\") or have length greater than 80 characters.

Kategoria już istnieje na komputerze lokalnym.The category already exists on the local computer.

categoryName to null.categoryName is null.

-lub--or- counterHelp to null.counterHelp is null.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.A call to an underlying system API failed.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.Code that is executing without administrative privileges attempted to read a performance counter.

Przykłady

Poniższy przykład kodu tworzy PerformanceCounterCategory i jeden PerformanceCounter z tekstem pomocy dla każdej z nich przy użyciu Create(String, String, String, String) metody.The following code example creates a PerformanceCounterCategory and single PerformanceCounter with help text for each, using the Create(String, String, String, String) method.

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 nieinteraktywnej sesji logowania w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, trzeba być członkiem grupy Użytkownicy monitora wydajności lub mieć uprawnienia administracyjne.To read performance counters from a non-interactive logon session in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, należy dodać siebie do grupy Użytkownicy monitora wydajności.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień użytkownika standardowego do administratora.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. Można to zrobić podczas uruchamiania aplikacji przez kliknięcie prawym przyciskiem myszy ikony aplikacji i wskazanie, że chcesz uruchomić program jako administrator.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Zobacz też

Dotyczy

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

Rejestruje kategorię niestandardowego licznika wydajności zawierającą pojedynczy licznik typu NumberOfItems32 na komputerze lokalnym.Registers the custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

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 kategorii niestandardowego licznika wydajności do tworzenia i rejestrowania w systemie.The name of the custom performance counter category to create and register with the system.

categoryHelp
String

Opis kategorii niestandardowej.A description of the custom category.

categoryType
PerformanceCounterCategoryType

Jedna z PerformanceCounterCategoryType wartości określająca, czy kategoria jest MultiInstance , SingleInstance , czy Unknown .One of the PerformanceCounterCategoryType values specifying whether the category is MultiInstance, SingleInstance, or Unknown.

counterName
String

Nazwa nowego licznika, który ma zostać utworzony jako część nowej kategorii.The name of a new counter to create as part of the new category.

counterHelp
String

Opis licznika, który jest skojarzony z nową kategorią niestandardową.A description of the counter that is associated with the new custom category.

Zwraca

PerformanceCounterCategory

, PerformanceCounterCategory Który jest skojarzony z nową kategorią systemu lub obiektem wydajności.A PerformanceCounterCategory that is associated with the new system category, or performance object.

Wyjątki

counterName jest null lub jest pustym ciągiem ("").counterName is null or is an empty string ("").

-lub--or- Licznik, który jest określony przez counterName już istnieje.The counter that is specified by counterName already exists.

-lub--or- counterName ma nieprawidłową składnię.counterName has invalid syntax. Może zawierać znaki ukośnika odwrotnego (" \ ") lub mieć długość większą niż 80 znaków.It might contain backslash characters ("\") or have length greater than 80 characters.

Kategoria już istnieje na komputerze lokalnym.The category already exists on the local computer.

categoryName to null.categoryName is null.

-lub--or- counterHelp to null.counterHelp is null.

Wywołanie podstawowego interfejsu API systemu nie powiodło się.A call to an underlying system API failed.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.Code that is executing without administrative privileges attempted to read a performance counter.

Przykłady

Poniższy przykład kodu pokazuje użycie Create metody.The following code example shows the use of the Create method. W przykładzie przedstawiono sposób tworzenia niestandardowej kategorii licznika wydajności pojedynczego wystąpienia.The example shows how to create a custom, single instance performance counter category.

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

categoryTypeParametr określa, czy kategoria licznika wydajności jest pojedynczym wystąpieniem, czy z obsługą wiele wystąpień.The categoryType parameter specifies whether the performance counter category is single-instance or multi-instance. Domyślnie kategoria ma pojedyncze wystąpienie, gdy jest tworzona, i zostaje wiele wystąpień, gdy dodawane jest inne wystąpienie.By default, a category is single-instance when it is created and becomes multi-instance when another instance is added. Kategorie są tworzone podczas konfigurowania aplikacji, a wystąpienia są dodawane w czasie wykonywania.Categories are created when an application is set up, and instances are added at run time. W .NET Framework wersje 1,0 i 1,1 nie trzeba wiedzieć, czy kategoria licznika wydajności ma wiele wystąpień lub pojedyncze wystąpienie.In the .NET Framework versions 1.0 and 1.1, it is not necessary to know if a performance counter category is multi-instance or single-instance. W .NET Framework 2.0.NET Framework 2.0 , Wyliczenie służy PerformanceCounterCategoryType do wskazywania, czy licznik wydajności może mieć wiele wystąpień.In the .NET Framework 2.0.NET Framework 2.0, the PerformanceCounterCategoryType enumeration is used to indicate whether a performance counter can have multiple instances.

Kategorie licznika wydajności zainstalowane z .NET Framework 2.0.NET Framework 2.0 użyciem oddzielnej udostępnionej pamięci, z każdą kategorią licznika wydajności mającą własną pamięć.Performance counter categories installed with the .NET Framework 2.0.NET Framework 2.0 use separate shared memory, with each performance counter category having its own memory. Można określić rozmiar oddzielnej pamięci współdzielonej przez utworzenie typu DWORD o nazwie FileMappingSize w kluczu rejestru HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services \ <category name> \Performance.You can specify the size of separate shared memory by creating a DWORD named FileMappingSize in the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<category name> \Performance. Wartość FileMappingSize jest ustawiona na rozmiar pamięci współdzielonej kategorii.The FileMappingSize value is set to the shared memory size of the category. Domyślny rozmiar to 131072 dziesiętny.The default size is 131072 decimal. Jeśli wartość FileMappingSize nie jest obecna, zostanie fileMappingSize użyta wartość atrybutu dla performanceCounters elementu określonego w pliku Machine.config, co spowoduje dodatkowe obciążenie związane z przetwarzaniem plików konfiguracyjnych.If the FileMappingSize value is not present, the fileMappingSize attribute value for the performanceCounters element specified in the Machine.config file is used, causing additional overhead for configuration file processing. Zwiększenie wydajności uruchamiania aplikacji można zrealizować przez ustawienie rozmiaru mapowania plików w rejestrze.You can realize a performance improvement for application startup by setting the file mapping size in the registry.

Uwaga

Zdecydowanie zaleca się utworzenie nowych kategorii licznika wydajności podczas instalacji aplikacji, a nie w trakcie wykonywania aplikacji.It is strongly recommended that new performance counter categories be created during the installation of the application, not during the execution of the application. Pozwala to czas na odświeżenie listy zarejestrowanych kategorii liczników wydajności przez system operacyjny.This allows time for the operating system to refresh its list of registered performance counter categories. Jeśli lista nie została odświeżona, próba użycia kategorii zakończy się niepowodzeniem.If the list has not been refreshed, the attempt to use the category will fail.

Uwaga

Aby odczytać liczniki wydajności z nieinteraktywnej sesji logowania w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, trzeba być członkiem grupy Użytkownicy monitora wydajności lub mieć uprawnienia administracyjne.To read performance counters from a non-interactive logon session in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, należy dodać siebie do grupy Użytkownicy monitora wydajności.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień użytkownika standardowego do administratora.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. Można to zrobić podczas uruchamiania aplikacji przez kliknięcie prawym przyciskiem myszy ikony aplikacji i wskazanie, że chcesz uruchomić program jako administrator.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Zobacz też

Dotyczy

Create(String, String, CounterCreationDataCollection)

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

Use another overload that uses PerformanceCounterCategoryType instead

Rejestruje kategorię niestandardowego licznika wydajności zawierającej określone liczniki na komputerze lokalnym.Registers the custom performance counter category containing the specified counters on the local computer.

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);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("Use another overload that uses PerformanceCounterCategoryType instead")]
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
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("Use another overload that uses PerformanceCounterCategoryType instead")>]
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 kategorii niestandardowego licznika wydajności do tworzenia i rejestrowania w systemie.The name of the custom performance counter category to create and register with the system.

categoryHelp
String

Opis kategorii niestandardowej.A description of the custom category.

counterData
CounterCreationDataCollection

A CounterCreationDataCollection , który określa liczniki do utworzenia jako część nowej kategorii.A CounterCreationDataCollection that specifies the counters to create as part of the new category.

Zwraca

PerformanceCounterCategory

, PerformanceCounterCategory Który jest skojarzony z nową kategorią niestandardową lub obiektem wydajności.A PerformanceCounterCategory that is associated with the new custom category, or performance object.

Atrybuty

Wyjątki

Nazwa licznika określona w counterData kolekcji jest null lub jest pustym ciągiem ("").A counter name that is specified within the counterData collection is null or an empty string ("").

-lub--or- Licznik, który jest określony w counterData kolekcji, już istnieje.A counter that is specified within the counterData collection already exists.

-lub--or- counterNameParametr ma nieprawidłową składnię.The counterName parameter has invalid syntax. Może zawierać znaki ukośnika odwrotnego (" \ ") lub mieć długość większą niż 80 znaków.It might contain backslash characters ("\") or have length greater than 80 characters.

categoryNameParametr ma wartość null .The categoryName parameter is null.

Kategoria już istnieje na komputerze lokalnym.The category already exists on the local computer.

-lub--or- Układ counterData kolekcji jest niepoprawny dla liczników podstawowych.The layout of the counterData collection is incorrect for base counters. Licznik typu,,,,,, AverageCount64 AverageTimer32 CounterMultiTimer CounterMultiTimerInverse CounterMultiTimer100Ns CounterMultiTimer100NsInverse RawFraction SampleFraction lub SampleCounter musi być bezpośrednio po jednym z podstawowych typów licznika ( AverageBase , MultiBase , RawBase lub SampleBase ).A counter of type AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction or SampleCounter has to be immediately followed by one of the base counter types (AverageBase, MultiBase, RawBase, or SampleBase).

Wywołanie podstawowego interfejsu API systemu nie powiodło się.A call to an underlying system API failed.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.Code that is executing without administrative privileges attempted to read a performance counter.

Przykłady

Poniższy przykład kodu określa, czy PerformanceCounterCategory obiekt o nazwie "Orders" (zamówienia) istnieje.The following code example determines whether a PerformanceCounterCategory object named "orders" exists. W przeciwnym razie tworzy PerformanceCounterCategory Obiekt przy użyciu CounterCreationDataCollection obiektu, który zawiera dwa liczniki wydajności.If not, it creates the PerformanceCounterCategory object by using a CounterCreationDataCollection object that contains two performance counters.

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 nieinteraktywnej sesji logowania w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, trzeba być członkiem grupy Użytkownicy monitora wydajności lub mieć uprawnienia administracyjne.To read performance counters from a non-interactive logon session in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, należy dodać siebie do grupy Użytkownicy monitora wydajności.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień użytkownika standardowego do administratora.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. Można to zrobić podczas uruchamiania aplikacji przez kliknięcie prawym przyciskiem myszy ikony aplikacji i wskazanie, że chcesz uruchomić program jako administrator.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Zobacz też

Dotyczy

Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

Rejestruje kategorię niestandardowego licznika wydajności zawierającej określone liczniki na komputerze lokalnym.Registers the custom performance counter category containing the specified counters on the local computer.

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 kategorii niestandardowego licznika wydajności do tworzenia i rejestrowania w systemie.The name of the custom performance counter category to create and register with the system.

categoryHelp
String

Opis kategorii niestandardowej.A description of the custom category.

counterData
CounterCreationDataCollection

A CounterCreationDataCollection , który określa liczniki do utworzenia jako część nowej kategorii.A CounterCreationDataCollection that specifies the counters to create as part of the new category.

Zwraca

PerformanceCounterCategory

, PerformanceCounterCategory Który jest skojarzony z nową kategorią niestandardową lub obiektem wydajności.A PerformanceCounterCategory that is associated with the new custom category, or performance object.

Wyjątki

Nazwa licznika określona w counterData kolekcji jest null lub jest pustym ciągiem ("").A counter name that is specified within the counterData collection is null or an empty string ("").

-lub--or- Licznik, który jest określony w counterData kolekcji, już istnieje.A counter that is specified within the counterData collection already exists.

-lub--or- counterName ma nieprawidłową składnię.counterName has invalid syntax. Może zawierać znaki ukośnika odwrotnego (" \ ") lub mieć długość większą niż 80 znaków.It might contain backslash characters ("\") or have length greater than 80 characters.

categoryName to null.categoryName is null.

-lub--or- counterData to null.counterData is null.

categoryType wartość znajduje się poza zakresem następujących wartości: MultiInstance , SingleInstance , lub Unknown .categoryType value is outside of the range of the following values: MultiInstance, SingleInstance, or Unknown.

Kategoria już istnieje na komputerze lokalnym.The category already exists on the local computer.

-lub--or- Układ counterData kolekcji jest niepoprawny dla liczników podstawowych.The layout of the counterData collection is incorrect for base counters. Licznik typu,,,,,,,, AverageCount64 AverageTimer32 CounterMultiTimer CounterMultiTimerInverse CounterMultiTimer100Ns CounterMultiTimer100NsInverse RawFraction SampleFraction lub SampleCounter musi być bezpośrednio po jednym z podstawowych typów licznika ( AverageBase , MultiBase , RawBase lub SampleBase ).A counter of type AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction, or SampleCounter must be immediately followed by one of the base counter types (AverageBase, MultiBase, RawBase, or SampleBase).

Wywołanie podstawowego interfejsu API systemu nie powiodło się.A call to an underlying system API failed.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.Code that is executing without administrative privileges attempted to read a performance counter.

Przykłady

Poniższy przykład kodu pokazuje użycie Create metody.The following code example shows the use of the Create method. W przykładzie pokazano, jak utworzyć niestandardową, Wieloetapową kategorię licznika wydajności dla liczby zamówień na sekundę.The example shows how to create a custom, multi-instance performance counter category for the number of orders per second.

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

categoryTypeParametr określa, czy kategoria licznika wydajności jest pojedynczym wystąpieniem, czy z obsługą wiele wystąpień.The categoryType parameter specifies whether the performance counter category is single-instance or multi-instance. Domyślnie kategoria ma pojedyncze wystąpienie, gdy jest tworzona, i zostaje wiele wystąpień, gdy dodawane jest inne wystąpienie.By default, a category is single-instance when it is created and becomes multi-instance when another instance is added. Kategorie są tworzone podczas konfigurowania aplikacji, a wystąpienia są dodawane w czasie wykonywania.Categories are created when an application is set up, and instances are added at run time. W .NET Framework wersje 1,0 i 1,1 nie trzeba wiedzieć, czy kategoria licznika wydajności ma wiele wystąpień lub pojedyncze wystąpienie.In the .NET Framework versions 1.0 and 1.1, it is not necessary to know if a performance counter category is multi-instance or single-instance. W .NET Framework 2.0.NET Framework 2.0 , Wyliczenie służy PerformanceCounterCategoryType do wskazywania, czy licznik wydajności może mieć wiele wystąpień.In the .NET Framework 2.0.NET Framework 2.0, the PerformanceCounterCategoryType enumeration is used to indicate whether a performance counter can have multiple instances.

Kategorie licznika wydajności zainstalowane z .NET Framework 2.0.NET Framework 2.0 użyciem oddzielnej udostępnionej pamięci, z każdą kategorią licznika wydajności mającą własną pamięć.Performance counter categories installed with the .NET Framework 2.0.NET Framework 2.0 use separate shared memory, with each performance counter category having its own memory. Można określić rozmiar oddzielnej pamięci współdzielonej przez utworzenie typu DWORD o nazwie FileMappingSize w kluczu rejestru HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services \ <category name> \Performance.You can specify the size of separate shared memory by creating a DWORD named FileMappingSize in the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<category name> \Performance. Wartość FileMappingSize jest ustawiona na rozmiar pamięci współdzielonej kategorii.The FileMappingSize value is set to the shared memory size of the category. Domyślny rozmiar to 131072 dziesiętny.The default size is 131072 decimal. Jeśli wartość FileMappingSize nie jest obecna, zostanie fileMappingSize użyta wartość atrybutu dla performanceCounters elementu określonego w pliku Machine.config, co spowoduje dodatkowe obciążenie związane z przetwarzaniem plików konfiguracyjnych.If the FileMappingSize value is not present, the fileMappingSize attribute value for the performanceCounters element specified in the Machine.config file is used, causing additional overhead for configuration file processing. Zwiększenie wydajności uruchamiania aplikacji można zrealizować przez ustawienie rozmiaru mapowania plików w rejestrze.You can realize a performance improvement for application startup by setting the file mapping size in the registry.

Uwaga

Zdecydowanie zaleca się utworzenie nowych kategorii licznika wydajności podczas instalacji aplikacji, a nie w trakcie wykonywania aplikacji.It is strongly recommended that new performance counter categories be created during the installation of the application, not during the execution of the application. Pozwala to czas na odświeżenie listy zarejestrowanych kategorii liczników wydajności przez system operacyjny.This allows time for the operating system to refresh its list of registered performance counter categories. Jeśli lista nie została odświeżona, próba użycia kategorii zakończy się niepowodzeniem.If the list has not been refreshed, the attempt to use the category will fail.

Uwaga

Aby odczytać liczniki wydajności z nieinteraktywnej sesji logowania w systemie Windows Vista lub nowszym, Windows XP Professional x64 Edition lub Windows Server 2003, trzeba być członkiem grupy Użytkownicy monitora wydajności lub mieć uprawnienia administracyjne.To read performance counters from a non-interactive logon session in Windows Vista and later, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista i nowszych, należy dodać siebie do grupy Użytkownicy monitora wydajności.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

W systemie Windows Vista i nowszych Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień użytkownika standardowego do administratora.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. Można to zrobić podczas uruchamiania aplikacji przez kliknięcie prawym przyciskiem myszy ikony aplikacji i wskazanie, że chcesz uruchomić program jako administrator.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Zobacz też

Dotyczy