PerformanceCounterCategory.Create Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra una categoria personalizzata di contatori delle prestazioni e uno o più contatori con il sistema.
Overload
Create(String, String, String, String) |
Obsoleti.
Obsoleti.
Obsoleti.
Registra una categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo |
Create(String, String, PerformanceCounterCategoryType, String, String) |
Registra la categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale. |
Create(String, String, CounterCreationDataCollection) |
Obsoleti.
Obsoleti.
Obsoleti.
Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale. |
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection) |
Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale. |
Create(String, String, String, String)
Attenzione
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
Attenzione
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
Attenzione
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.
Registra una categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32
sul computer locale.
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
Parametri
- categoryName
- String
Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.
- categoryHelp
- String
Una descrizione della categoria personalizzata.
- counterName
- String
Il nome di un nuovo contatore di tipo NumberOfItems32
da creare come parte della nuova categoria.
- counterHelp
- String
Una descrizione del contatore associata alla nuova categoria personalizzata.
Restituisce
Un oggetto PerformanceCounterCategory associato alla nuova categoria di sistema o oggetto delle prestazioni.
- Attributi
Eccezioni
counterName
è null
o è una stringa vuota ("").
-oppure-
Il contatore specificato dal parametro counterName
esiste già.
-oppure-
La sintassi del parametro counterName
non è valida. Può contenere caratteri barra rovesciata ("\") o lunghezza maggiore di 80 caratteri.
La categoria è già presente sul computer locale.
Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
Esempio
L'esempio di codice seguente crea un oggetto e singolo PerformanceCounterCategoryPerformanceCounter con testo della Guida per ogni oggetto usando il Create(String, String, String, String) metodo .
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 da una sessione di accesso non interattiva in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo utenti Monitor prestazioni o disporre di privilegi amministrativi.
Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo utenti di Monitor prestazioni.
In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente. 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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è prima necessario elevare i privilegi dall'utente standard all'amministratore. È 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.
Vedi anche
Si applica a
Create(String, String, PerformanceCounterCategoryType, String, String)
Registra la categoria personalizzata di contatori delle prestazioni contenente un solo contatore di tipo NumberOfItems32 sul computer locale.
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
Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.
- categoryHelp
- String
Una descrizione della categoria personalizzata.
- categoryType
- PerformanceCounterCategoryType
Uno dei valori di PerformanceCounterCategoryType che specifica se la categoria è MultiInstance, SingleInstance o Unknown.
- counterName
- String
Il nome di un nuovo contatore da creare nel contesto della nuova categoria.
- counterHelp
- String
Una descrizione del contatore associata alla nuova categoria personalizzata.
Restituisce
Un oggetto PerformanceCounterCategory associato alla nuova categoria di sistema o oggetto delle prestazioni.
Eccezioni
counterName
è null
o è una stringa vuota ("").
-oppure-
Il contatore specificato dal parametro counterName
esiste già.
-oppure-
La sintassi del parametro counterName
non è valida. Può contenere caratteri barra rovesciata ("\") o lunghezza maggiore di 80 caratteri.
La categoria è già presente sul computer locale.
Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso Create del metodo. Nell'esempio viene illustrato come creare una categoria di contatore delle prestazioni di istanza singola personalizzata.
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 è istanza singola o multiistanza. Per impostazione predefinita, una categoria viene istanza singola quando viene creata e diventa multiistanza quando viene aggiunta un'altra istanza. Le categorie vengono create quando un'applicazione viene configurata e le istanze vengono aggiunte in fase di esecuzione. In .NET Framework versioni 1.0 e 1.1 non è necessario sapere se una categoria di contatori delle prestazioni è multiistanza o istanza singola. In .NET Framework 2.0 l'enumerazione PerformanceCounterCategoryType viene usata per indicare se un contatore delle prestazioni può avere più istanze.
Le categorie di contatori delle prestazioni installate con .NET Framework 2.0 usano memoria condivisa separata, con ogni categoria di contatore delle prestazioni che ha la propria memoria. È possibile specificare le dimensioni della memoria condivisa separata creando una DWORD denominata FileMappingSize nella chiave del Registro di sistema HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> categoria\Prestazioni. Il valore FileMappingSize è impostato sulla dimensione della memoria condivisa della categoria. La dimensione predefinita è 131072 decimale. Se il valore FileMappingSize non è presente, viene usato il fileMappingSize
valore dell'attributo per l'elemento specificato nel file di Machine.config, causando un sovraccarico aggiuntivo per l'elaborazione performanceCounters
dei file di configurazione. È possibile realizzare un miglioramento delle prestazioni per l'avvio dell'applicazione impostando le dimensioni del mapping dei file nel Registro di sistema.
Nota
È consigliabile creare nuove categorie di contatori delle prestazioni durante l'installazione dell'applicazione, non durante l'esecuzione dell'applicazione. Ciò consente al sistema operativo di aggiornare l'elenco delle categorie di contatori delle prestazioni registrate. Se l'elenco non è stato aggiornato, il tentativo di usare la categoria avrà esito negativo.
Nota
Per leggere i contatori delle prestazioni da una sessione di accesso non interattiva in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere un membro del gruppo utenti Monitor prestazioni o disporre di privilegi amministrativi.
Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo utenti di Monitor prestazioni.
In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente. 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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è prima necessario elevare i privilegi dall'utente standard all'amministratore. È 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.
Vedi anche
Si applica a
Create(String, String, CounterCreationDataCollection)
Attenzione
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
Attenzione
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
Attenzione
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.
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
Parametri
- categoryName
- String
Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.
- categoryHelp
- String
Una descrizione della categoria personalizzata.
- counterData
- CounterCreationDataCollection
Un oggetto CounterCreationDataCollection che specifica i contatori da creare come parte della nuova categoria.
Restituisce
Un oggetto PerformanceCounterCategory associato alla nuova categoria personalizzata o oggetto delle prestazioni.
- Attributi
Eccezioni
Un nome di contatore specificato nell'insieme counterData
è null
oppure una stringa vuota ("").
-oppure-
Un contatore specificato nell'insieme counterData
è già presente.
-oppure-
La sintassi del parametro counterName
non è valida. Può contenere caratteri barra rovesciata ("\") o lunghezza maggiore di 80 caratteri.
Il valore del parametro categoryName
è null
.
La categoria è già presente sul computer locale.
-oppure-
Il layout dell'insieme counterData
non è corretto per i contatori di base. 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
).
Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
Esempio
L'esempio di codice seguente determina se esiste un PerformanceCounterCategory oggetto denominato "orders". In caso contrario, crea l'oggetto PerformanceCounterCategory usando un CounterCreationDataCollection oggetto contenente due contatori delle prestazioni.
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 da una sessione di accesso non interattiva in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere membri del gruppo utenti di Monitor prestazioni o disporre di privilegi amministrativi.
Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo utenti Monitor prestazioni.
In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente. 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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. È 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.
Vedi anche
Si applica a
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
Registra la categoria personalizzata di contatori delle prestazioni contenente i contatori specificati sul computer locale.
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
Il nome della categoria personalizzata di contatori delle prestazioni da creare e registrare con il sistema.
- categoryHelp
- String
Una descrizione della categoria personalizzata.
- categoryType
- PerformanceCounterCategoryType
Uno dei valori di PerformanceCounterCategoryType.
- counterData
- CounterCreationDataCollection
Un oggetto CounterCreationDataCollection che specifica i contatori da creare come parte della nuova categoria.
Restituisce
Un oggetto PerformanceCounterCategory associato alla nuova categoria personalizzata o oggetto delle prestazioni.
Eccezioni
Un nome di contatore specificato nell'insieme counterData
è null
oppure una stringa vuota ("").
-oppure-
Un contatore specificato nell'insieme counterData
è già presente.
-oppure-
La sintassi del parametro counterName
non è valida. Può contenere caratteri barra rovesciata ("\") o avere una lunghezza maggiore di 80 caratteri.
Il valore categoryType
non è compreso nell'intervallo dei valori seguenti: MultiInstance
, SingleInstance
o Unknown
.
La categoria è già presente sul computer locale.
-oppure-
Il layout dell'insieme counterData
non è corretto per i contatori di base. 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
).
Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
Esempio
Nell'esempio di codice seguente viene illustrato l'uso del Create metodo . Nell'esempio viene illustrato come creare una categoria di contatori delle prestazioni personalizzata a più istanze per il numero di ordini al secondo.
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 istanza multipla. Per impostazione predefinita, una categoria è a istanza singola quando viene creata e diventa multiistanza quando viene aggiunta un'altra istanza. Le categorie vengono create quando viene configurata un'applicazione e le istanze vengono aggiunte in fase di esecuzione. In .NET Framework versioni 1.0 e 1.1, non è necessario sapere se una categoria di contatori delle prestazioni è a istanza multipla o a istanza singola. In .NET Framework 2.0 l'enumerazione PerformanceCounterCategoryType viene usata per indicare se un contatore delle prestazioni può avere più istanze.
Le categorie di contatori delle prestazioni installate con .NET Framework 2.0 usano una memoria condivisa separata, con ogni categoria di contatori delle prestazioni con una propria memoria. È possibile specificare le dimensioni della memoria condivisa separata creando un DWORD denominato FileMappingSize nella chiave del Registro di sistema HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nome> categoria\Prestazioni. Il valore FileMappingSize viene impostato sulle dimensioni della memoria condivisa della categoria. La dimensione predefinita è 131072 decimale. Se il valore FileMappingSize non è presente, viene utilizzato il fileMappingSize
valore dell'attributo per l'elemento specificato nel file Machine.config, causando un sovraccarico aggiuntivo per l'elaborazione performanceCounters
dei file di configurazione. È possibile ottenere un miglioramento delle prestazioni per l'avvio dell'applicazione impostando le dimensioni del mapping dei file nel Registro di sistema.
Nota
È consigliabile creare nuove categorie di contatori delle prestazioni durante l'installazione dell'applicazione, non durante l'esecuzione dell'applicazione. Ciò consente al sistema operativo di aggiornare l'elenco delle categorie di contatori delle prestazioni registrate. Se l'elenco non è stato aggiornato, il tentativo di utilizzare la categoria avrà esito negativo.
Nota
Per leggere i contatori delle prestazioni da una sessione di accesso non interattiva in Windows Vista e versioni successive, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere membri del gruppo utenti di Monitor prestazioni o disporre di privilegi amministrativi.
Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungere se stessi al gruppo utenti Monitor prestazioni.
In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente. 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. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. È 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.