PerformanceCounterCategory.Exists 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.
Determina se la categoria è registrata sul sistema.
Overload
Exists(String) |
Determina se la categoria è registrata sul computer locale. |
Exists(String, String) |
Determina se la categoria è registrata sul computer specificato. |
Exists(String)
- Origine:
- PerformanceCounterCategory.cs
- Origine:
- PerformanceCounterCategory.cs
- Origine:
- PerformanceCounterCategory.cs
Determina se la categoria è registrata sul computer locale.
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists (string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
Parametri
- categoryName
- String
Il nome della categoria del contatore delle prestazioni da ricercare.
Restituisce
true
se la categoria è registrata; in caso contrario, false
.
Eccezioni
Il valore del parametro categoryName
è null
.
Il parametro categoryName
è una stringa vuota ("").
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
L'uso Exists del metodo può comportare una notevole penalità delle prestazioni mentre tutti i contatori delle prestazioni del computer vengono controllati per la disponibilità. Se si scrive solo in un contatore delle prestazioni, è possibile evitare il ricerca globale per i contatori delle prestazioni creando il contatore delle prestazioni quando l'applicazione viene installata e presupponendo che la categoria esista quando si accede al contatore. Non è possibile evitare la ricerca del contatore delle prestazioni durante la lettura dai contatori delle prestazioni.
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
Exists(String, String)
- Origine:
- PerformanceCounterCategory.cs
- Origine:
- PerformanceCounterCategory.cs
- Origine:
- PerformanceCounterCategory.cs
Determina se la categoria è registrata sul computer specificato.
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists (string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
Parametri
- categoryName
- String
Il nome della categoria del contatore delle prestazioni da ricercare.
- machineName
- String
Il nome del computer da esaminare per la categoria.
Restituisce
true
se la categoria è registrata; in caso contrario, false
.
Eccezioni
Il valore del parametro categoryName
è null
.
Il parametro categoryName
è una stringa vuota ("").
-oppure-
Il parametro machineName
non è valido.
Una chiamata ad un'API di sistema sottostante non ha avuto esito positivo.
Impossibile trovare il percorso di rete.
Il chiamante non dispone dell'autorizzazione richiesta.
-oppure-
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
Esempio
Nell'esempio seguente viene determinato se esiste un PerformanceCounterCategory oggetto denominato Orders
. Se non esiste, l'esempio 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
L'uso Exists del metodo può comportare una notevole penalità delle prestazioni mentre tutti i contatori delle prestazioni del computer vengono controllati per la disponibilità. Se si scrive solo in un contatore delle prestazioni, è possibile evitare il ricerca globale per i contatori delle prestazioni creando il contatore delle prestazioni quando l'applicazione viene installata e presupponendo che la categoria esista quando si accede al contatore. Non è possibile evitare la ricerca del contatore delle prestazioni durante la lettura dai contatori delle prestazioni.
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.