PerformanceCounterCategory.Create PerformanceCounterCategory.Create PerformanceCounterCategory.Create PerformanceCounterCategory.Create Method

Definizione

Registra una categoria personalizzata di contatori delle prestazioni e uno o più contatori con il sistema.Registers a custom performance counter category and one or more counters with the system.

Overload

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

Registra una categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale.Registers a custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

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

Registra la categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale.Registers the custom performance counter category containing a single counter of type NumberOfItems32 on the local computer.

Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection)

Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.Registers the custom performance counter category containing the specified counters on the local computer.

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

Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.Registers the custom performance counter category containing the specified counters on the local computer.

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

Avviso

Questa API è ora obsoleta.

Registra una categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale.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("Use another overload that uses PerformanceCounterCategoryType instead")]
[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")]
[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);
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

Parametri

categoryName
String String String String

Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.The name of the custom performance counter category to create and register with the system.

categoryHelp
String String String String

Una descrizione della categoria personalizzata.A description of the custom category.

counterName
String String String String

Il nome di un nuovo contatore di tipo NumberOfItems32 da creare come parte della nuova categoria.The name of a new counter, of type NumberOfItems32, to create as part of the new category.

counterHelp
String String String String

Una descrizione del contatore associata alla nuova categoria personalizzata.A description of the counter that is associated with the new custom category.

Restituisce

Un oggetto PerformanceCounterCategory associato alla nuova categoria di sistema o oggetto delle prestazioni.A PerformanceCounterCategory that is associated with the new system category, or performance object.

Eccezioni

counterName è null o è una stringa vuota ("").counterName is null or is an empty string ("").

-oppure--or- Il contatore specificato dal parametro counterName esiste già.The counter that is specified by counterName already exists.

-oppure--or- La sintassi del parametro counterName non è valida.counterName has invalid syntax. Probabilmente contiene caratteri di barra rovesciata ("\") o ha una lunghezza maggiore di 80 caratteri.It might contain backslash characters ("\") or have length greater than 80 characters.

La categoria è già presente sul computer locale.The category already exists on the local computer.

categoryName è null.categoryName is null.

-oppure--or- counterHelp è null.counterHelp is null.

Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.A call to an underlying system API failed.

Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.Code that is executing without administrative privileges attempted to read a performance counter.

Esempi

Nell'esempio di codice seguente vengono PerformanceCounterCategory creati un PerformanceCounter oggetto e un singolo con il testo della Create(String, String, String, String) guida per ogni, utilizzando il metodo.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

Commenti

Nota

Per leggere i contatori delle prestazioni in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo Performance Monitor Users o disporre di privilegi amministrativi.To read performance counters 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.

Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo Performance Monitor Users.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede ai contatori delle prestazioni, è innanzitutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.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.

Sicurezza

PerformanceCounterPermission
per eseguire attività amministrative sulle categorie dei contatori delle prestazioni.for performing administrative tasks on performance counter categories. Enumerazione associata: Administer.Associated enumeration: Administer.

Vedi anche

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

Registra la categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale.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

Parametri

categoryName
String String String String

Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.The name of the custom performance counter category to create and register with the system.

categoryHelp
String String String String

Una descrizione della categoria personalizzata.A description of the custom category.

counterName
String String String String

Il nome di un nuovo contatore da creare nel contesto della nuova categoria.The name of a new counter to create as part of the new category.

counterHelp
String String String String

Una descrizione del contatore associata alla nuova categoria personalizzata.A description of the counter that is associated with the new custom category.

Restituisce

Un oggetto PerformanceCounterCategory associato alla nuova categoria di sistema o oggetto delle prestazioni.A PerformanceCounterCategory that is associated with the new system category, or performance object.

Eccezioni

counterName è null o è una stringa vuota ("").counterName is null or is an empty string ("").

In alternativa-or- Il contatore specificato dal parametro counterName esiste già.The counter that is specified by counterName already exists.

-oppure--or- La sintassi del parametro counterName non è valida.counterName has invalid syntax. Probabilmente contiene caratteri di barra rovesciata ("\") o ha una lunghezza maggiore di 80 caratteri.It might contain backslash characters ("\") or have length greater than 80 characters.

La categoria è già presente sul computer locale.The category already exists on the local computer.

categoryName è null.categoryName is null.

-oppure--or- counterHelp è null.counterHelp is null.

Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.A call to an underlying system API failed.

Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.Code that is executing without administrative privileges attempted to read a performance counter.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato Create l'utilizzo del metodo.The following code example shows the use of the Create method. Nell'esempio viene illustrato come creare una categoria di contatori delle prestazioni a istanza singola personalizzata.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

Commenti

Il categoryType parametro specifica se la categoria del contatore delle prestazioni è a istanza singola o a più istanze.The categoryType parameter specifies whether the performance counter category is single-instance or multi-instance. Per impostazione predefinita, una categoria è a istanza singola quando viene creata e diventa a istanza singola quando viene aggiunta un'altra istanza.By default, a category is single-instance when it is created and becomes multi-instance when another instance is added. Le categorie vengono create quando viene configurata un'applicazione e le istanze vengono aggiunte in fase di esecuzione.Categories are created when an application is set up, and instances are added at run time. Nelle versioni .NET Framework 1,0 e 1,1 non è necessario stabilire se una categoria di contatori delle prestazioni è a istanze diverse o a istanza singola.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. In, l' PerformanceCounterCategoryType enumerazione viene utilizzata per indicare se un contatore delle prestazioni può avere più istanze. .NET Framework 2.0.NET Framework 2.0In the .NET Framework 2.0.NET Framework 2.0, the PerformanceCounterCategoryType enumeration is used to indicate whether a performance counter can have multiple instances.

Le categorie dei contatori delle prestazioni .NET Framework 2.0.NET Framework 2.0 installate con utilizzano la memoria condivisa separata, con ogni categoria di contatori delle prestazioni con memoria propria.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. È possibile specificare la dimensione della memoria condivisa separata creando un valore DWORD denominato FileMappingSize nella chiave del registro di\sistema 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. Il valore FileMappingSize è impostato sulle dimensioni della memoria condivisa della categoria.The FileMappingSize value is set to the shared memory size of the category. Le dimensioni predefinite sono 131072 decimali.The default size is 131072 decimal. Se il valore FileMappingSize non è presente, viene fileMappingSize usato il valore dell' performanceCounters attributo per l'elemento specificato nel file Machine. config, causando un sovraccarico aggiuntivo per l'elaborazione dei file di configurazione.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. È possibile realizzare un miglioramento delle prestazioni per l'avvio dell'applicazione impostando le dimensioni del mapping dei file nel registro di sistema.You can realize a performance improvement for application startup by setting the file mapping size in the registry.

Nota

Si consiglia vivamente di creare nuove categorie di contatori delle prestazioni durante l'installazione dell'applicazione, non durante l'esecuzione dell'applicazione.It is strongly recommended that new performance counter categories be created during the installation of the application, not during the execution of the application. Ciò consente al sistema operativo di aggiornare l'elenco delle categorie di contatori delle prestazioni registrate.This allows time for the operating system to refresh its list of registered performance counter categories. Se l'elenco non è stato aggiornato, il tentativo di usare la categoria avrà esito negativo.If the list has not been refreshed, the attempt to use the category will fail.

Nota

Per leggere i contatori delle prestazioni in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo Performance Monitor Users o disporre di privilegi amministrativi.To read performance counters 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.

Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo Performance Monitor Users.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede ai contatori delle prestazioni, è innanzitutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.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.

Sicurezza

PerformanceCounterPermission
per eseguire attività amministrative sulle categorie dei contatori delle prestazioni.for performing administrative tasks on performance counter categories. Enumerazione associata: Administer.Associated enumeration: Administer.

Vedi anche

Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection) Create(String, String, CounterCreationDataCollection)

Avviso

Questa API è ora obsoleta.

Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.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("Use another overload that uses PerformanceCounterCategoryType instead")]
[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")]
[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);
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

Parametri

categoryName
String String String String

Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.The name of the custom performance counter category to create and register with the system.

categoryHelp
String String String String

Una descrizione della categoria personalizzata.A description of the custom category.

counterData
CounterCreationDataCollection CounterCreationDataCollection CounterCreationDataCollection CounterCreationDataCollection

Un oggetto CounterCreationDataCollection che specifica i contatori da creare come parte della nuova categoria.A CounterCreationDataCollection that specifies the counters to create as part of the new category.

Restituisce

Un oggetto PerformanceCounterCategory associato alla nuova categoria personalizzata o oggetto delle prestazioni.A PerformanceCounterCategory that is associated with the new custom category, or performance object.

Eccezioni

Un nome di contatore specificato nell'insieme counterData è null oppure una stringa vuota ("").A counter name that is specified within the counterData collection is null or an empty string ("").

-oppure--or- Un contatore specificato nell'insieme counterData è già presente.A counter that is specified within the counterData collection already exists.

-oppure--or- La sintassi del parametro counterName non è valida.The counterName parameter has invalid syntax. Probabilmente contiene caratteri di barra rovesciata ("\") o ha una lunghezza maggiore di 80 caratteri.It might contain backslash characters ("\") or have length greater than 80 characters.

Il valore del parametro categoryName è null.The categoryName parameter is null.

La categoria è già presente sul computer locale.The category already exists on the local computer.

-oppure--or- Il layout dell'insieme counterData non è corretto per i contatori di base.The layout of the counterData collection is incorrect for base counters. Un contatore del tipo AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction o SampleCounter deve essere seguito immediatamente da uno dei tipi di contatore di base (AverageBase, MultiBase, RawBase o 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).

Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.A call to an underlying system API failed.

Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.Code that is executing without administrative privileges attempted to read a performance counter.

Esempi

L'esempio di codice seguente determina se PerformanceCounterCategory esiste un oggetto denominato "Orders".The following code example determines whether a PerformanceCounterCategory object named "orders" exists. In caso contrario, crea l' PerformanceCounterCategory oggetto utilizzando un CounterCreationDataCollection oggetto che contiene due contatori delle prestazioni.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

Commenti

Nota

Per leggere i contatori delle prestazioni in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo Performance Monitor Users o disporre di privilegi amministrativi.To read performance counters 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.

Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo Performance Monitor Users.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede ai contatori delle prestazioni, è innanzitutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.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.

Sicurezza

PerformanceCounterPermission
per eseguire attività amministrative sulle categorie dei contatori delle prestazioni.for performing administrative tasks on performance counter categories. Enumerazione associata: Administer.Associated enumeration: Administer.

Vedi anche

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

Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.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

Parametri

categoryName
String String String String

Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.The name of the custom performance counter category to create and register with the system.

categoryHelp
String String String String

Una descrizione della categoria personalizzata.A description of the custom category.

counterData
CounterCreationDataCollection CounterCreationDataCollection CounterCreationDataCollection CounterCreationDataCollection

Un oggetto CounterCreationDataCollection che specifica i contatori da creare come parte della nuova categoria.A CounterCreationDataCollection that specifies the counters to create as part of the new category.

Restituisce

Un oggetto PerformanceCounterCategory associato alla nuova categoria personalizzata o oggetto delle prestazioni.A PerformanceCounterCategory that is associated with the new custom category, or performance object.

Eccezioni

Un nome di contatore specificato nell'insieme counterData è null oppure una stringa vuota ("").A counter name that is specified within the counterData collection is null or an empty string ("").

In alternativa-or- Un contatore specificato nell'insieme counterData è già presente.A counter that is specified within the counterData collection already exists.

-oppure--or- La sintassi del parametro counterName non è valida.counterName has invalid syntax. Probabilmente contiene caratteri di barra rovesciata ("\") o ha una lunghezza maggiore di 80 caratteri.It might contain backslash characters ("\") or have length greater than 80 characters.

categoryName è null.categoryName is null.

-oppure--or- counterData è null.counterData is null.

Il valore categoryType non è compreso nell'intervallo dei valori seguenti: MultiInstance, SingleInstance o Unknown.categoryType value is outside of the range of the following values: MultiInstance, SingleInstance, or Unknown.

La categoria è già presente sul computer locale.The category already exists on the local computer.

In alternativa-or- Il layout dell'insieme counterData non è corretto per i contatori di base.The layout of the counterData collection is incorrect for base counters. Un contatore del tipo AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction o SampleCounter deve essere seguito immediatamente da uno dei tipi di contatore di base (AverageBase, MultiBase, RawBase o 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).

Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.A call to an underlying system API failed.

Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.Code that is executing without administrative privileges attempted to read a performance counter.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato Create l'utilizzo del metodo.The following code example shows the use of the Create method. Nell'esempio viene illustrato come creare una categoria di contatori delle prestazioni a istanza singola personalizzata per il numero di ordini al secondo.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

Commenti

Il categoryType parametro specifica se la categoria del contatore delle prestazioni è a istanza singola o a più istanze.The categoryType parameter specifies whether the performance counter category is single-instance or multi-instance. Per impostazione predefinita, una categoria è a istanza singola quando viene creata e diventa a istanza singola quando viene aggiunta un'altra istanza.By default, a category is single-instance when it is created and becomes multi-instance when another instance is added. Le categorie vengono create quando viene configurata un'applicazione e le istanze vengono aggiunte in fase di esecuzione.Categories are created when an application is set up, and instances are added at run time. Nelle versioni .NET Framework 1,0 e 1,1 non è necessario stabilire se una categoria di contatori delle prestazioni è a istanze diverse o a istanza singola.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. In, l' PerformanceCounterCategoryType enumerazione viene utilizzata per indicare se un contatore delle prestazioni può avere più istanze. .NET Framework 2.0.NET Framework 2.0In the .NET Framework 2.0.NET Framework 2.0, the PerformanceCounterCategoryType enumeration is used to indicate whether a performance counter can have multiple instances.

Le categorie dei contatori delle prestazioni .NET Framework 2.0.NET Framework 2.0 installate con utilizzano la memoria condivisa separata, con ogni categoria di contatori delle prestazioni con memoria propria.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. È possibile specificare la dimensione della memoria condivisa separata creando un valore DWORD denominato FileMappingSize nella chiave del registro di\sistema 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. Il valore FileMappingSize è impostato sulle dimensioni della memoria condivisa della categoria.The FileMappingSize value is set to the shared memory size of the category. Le dimensioni predefinite sono 131072 decimali.The default size is 131072 decimal. Se il valore FileMappingSize non è presente, viene fileMappingSize usato il valore dell' performanceCounters attributo per l'elemento specificato nel file Machine. config, causando un sovraccarico aggiuntivo per l'elaborazione dei file di configurazione.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. È possibile realizzare un miglioramento delle prestazioni per l'avvio dell'applicazione impostando le dimensioni del mapping dei file nel registro di sistema.You can realize a performance improvement for application startup by setting the file mapping size in the registry.

Nota

Si consiglia vivamente di creare nuove categorie di contatori delle prestazioni durante l'installazione dell'applicazione, non durante l'esecuzione dell'applicazione.It is strongly recommended that new performance counter categories be created during the installation of the application, not during the execution of the application. Ciò consente al sistema operativo di aggiornare l'elenco delle categorie di contatori delle prestazioni registrate.This allows time for the operating system to refresh its list of registered performance counter categories. Se l'elenco non è stato aggiornato, il tentativo di usare la categoria avrà esito negativo.If the list has not been refreshed, the attempt to use the category will fail.

Nota

Per leggere i contatori delle prestazioni in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo Performance Monitor Users o disporre di privilegi amministrativi.To read performance counters 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.

Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo Performance Monitor Users.To avoid having to elevate your privileges to access performance counters in Windows Vista and later, add yourself to the Performance Monitor Users group.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede ai contatori delle prestazioni, è innanzitutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.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.

Sicurezza

PerformanceCounterPermission
per eseguire attività amministrative sulle categorie dei contatori delle prestazioni.for performing administrative tasks on performance counter categories. Enumerazione associata: Administer.Associated enumeration: Administer.

Vedi anche

Si applica a