Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo PerformanceCounterCategory.GetCounters ()

 

Data di pubblicazione: ottobre 2016

Recupera un elenco di contatori in una categoria di contatori delle prestazioni che contiene solo un'istanza.

Spazio dei nomi:   System.Diagnostics
Assembly:  System (in System.dll)

public PerformanceCounter[] GetCounters()

Valore restituito

Type: System.Diagnostics.PerformanceCounter[]

Matrice di PerformanceCounter gli oggetti che indica i contatori associati a questa categoria di contatori delle prestazioni a istanza singola.

Exception Condition
ArgumentException

La categoria non è una singola istanza.

Win32Exception

Impossibile chiamare un'API di sistema sottostante.

InvalidOperationException

La categoria non dispone di un'istanza associata.

UnauthorizedAccessException

Il codice che è in esecuzione senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.

Per ulteriori informazioni sulle istanze degli oggetti prestazioni, vedere il PerformanceCounter Cenni preliminari sulla classe.

System_CAPS_noteNota

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.

Per evitare la necessità di elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista e versioni successive, aggiungersi al gruppo Performance Monitor Users.

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, è innanzitutto necessario elevare i privilegi da utente standard ad 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.

Esempio di codice seguente ottiene un elenco di PerformanceCounter gli oggetti in un PerformanceCounterCategory. Viene innanzitutto creato un PerformanceCounterCategory con il costruttore appropriato, in base se è stato specificato un nome di computer. Viene quindi utilizzato il GetCounters per restituire una matrice di PerformanceCounter oggetti, selezionando il GetCounters overload in base a se è stato specificato un nome di istanza.

Questo GetCounters() overload avrà esito negativo a meno che non viene utilizzato con una categoria a istanza singola.

public static void Main(string[] args)
{
    string categoryName = "";
    string machineName = "";
    string instanceName = "";
    PerformanceCounterCategory pcc;
    PerformanceCounter[] counters;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        machineName = args[1]=="."? "": args[1];
        instanceName = args[2];
    }
    catch
    {
        // Ignore the exception from non-supplied arguments.
    }

    try
    {
        // Create the appropriate PerformanceCounterCategory object.
        if (machineName.Length>0)
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }

        // Get the counters for this instance or a single instance 
        // of the selected category.
        if (instanceName.Length>0)
        {
            counters = pcc.GetCounters(instanceName);
        }
        else
        {
            counters = pcc.GetCounters();
        }

    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get counter information for " + 
            (instanceName.Length>0? "instance \"{2}\" in ": "single-instance ") + 
            "category \"{0}\" on " + (machineName.Length>0? "computer \"{1}\":": "this computer:"), 
            categoryName, machineName, instanceName);
        Console.WriteLine(ex.Message);
        return;
    }

    // Display the counter names if GetCounters was successful.
    if (counters!=null)
    {
        Console.WriteLine("These counters exist in " + 
            (instanceName.Length>0? "instance \"{1}\" of": "single instance") + 
            " category {0} on " + (machineName.Length>0? "computer \"{2}\":": "this computer:"), 
            categoryName, instanceName, machineName);

        // Display a numbered list of the counter names.
        int objX;
        for(objX=0; objX<counters.Length; objX++)
        {
            Console.WriteLine("{0,4} - {1}", objX+1, counters[objX].CounterName);
        }
    }
}

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: