Condividi tramite


Procedura: aggiungere e rimuovere istanze di contatori delle prestazioni

Aggiornamento: novembre 2007

È possibile aggiungere e rimuovere istanze in modo dinamico mentre si utilizzano i contatori e le categorie. È ad esempio possibile aggiungere un’istanza per ogni utente di un'applicazione Web di vendita al dettaglio, in modo da tenere traccia delle informazioni sulle relative azioni, quindi eliminare l’istanza quando l’utente si scollega.

Le istanze vengono aggiunte impostando un valore non elaborato per un contatore. Se non esiste alcuna istanza per il contatore, verrà creata un’istanza la prima volta che si imposta la proprietà RawValue, supponendo che tutte le azioni successive sul valore non elaborato abbiano effetto su tale istanza, se non ne è stata specificata un’altra. È possibile creare istanze aggiuntive specificando un nuovo nome di istanza e impostando un valore dopo di esso.

Nota:

La creazione dell'istanza avviene mediante il processo di impostazione del valore dell'istanza, non mediante la specifica del nome di una nuova istanza.

A differenza dei contatori, che non possono essere aggiunti a una categoria esistente se non come parte della creazione della categoria, le istanze possono essere aggiunte ed eliminate in qualunque momento dalle categorie definite dall’utente. Per passare da un’istanza all’altra, è possibile utilizzare la proprietà InstanceName.

Per rimuovere dalla memoria un’istanza di un contatore delle prestazioni personalizzato, utilizzare il metodo RemoveInstance. Si supponga ad esempio di avere un’applicazione Web di vendita al dettaglio che si avvale di una categoria chiamata OrderInProgress, all’interno della quale si gestiscono istanze per il carrello della spesa di ogni utente. Quando l’utente aggiunge per la prima volta un elemento al carrello, l’applicazione crea una nuova istanza per tale utente. Quando l’utente ha completato l’ordine, l’applicazione elimina l’istanza. Durante l’ordine, l’istanza viene aggiornata con contatori quali NumberofItemsinCart, TimeSinceCreation e NumberofItemsAddedPerSecond.

Non è possibile eliminare le istanze dai contatori delle prestazioni predefiniti di Windows. Se il componente PerformanceCounter non fa riferimento a un’istanza valida, tale metodo genererà un’eccezione.

Nota:

La classe PerformanceCounter non è completamente supportata in Microsoft Windows NT versione 4.0. È possibile leggere dai contatori di sistema, ma non è possibile creare o eliminare i contatori personalizzati, né scrivervi.

Per aggiungere un’istanza del contatore delle prestazioni

  1. Creare categorie e contatori normalmente. Per ulteriori informazioni, vedere Procedura: creare categorie di contatori delle prestazioni.

  2. Impostare la proprietà InstanceName su un nome univoco per l’istanza, quindi impostare la proprietà RawValue dell'istanza.

    Nel codice seguente viene mostrato come creare diverse istanze di una categoria di contatore delle prestazioni esistente:

    ' Assumes the category and counter have already been created.
    Dim myCounter As New System.Diagnostics.PerformanceCounter( _
       "cat", "counter", "instance1", False)
    ' Set the raw value to automatically create instance1.
    myCounter.RawValue = 100
    ' State that you will now be working with a different instance.
    myCounter.InstanceName = "instance2"
    ' Setting the value actually creates instance2.
    myCounter.RawValue = 200
    
         // Assumes category and counter have been created.
            System.Diagnostics.PerformanceCounter myCounter =
               new System.Diagnostics.PerformanceCounter(
               "cat", "counter", "instance1", false);
            // Set the raw value to automatically create instance1.
            myCounter.RawValue = 100;
            // State that you will now be working with a different instance.
            myCounter.InstanceName = "instance2";
            // Setting the value actually creates instance2.
            myCounter.RawValue = 200;
    
    

Per eliminare un’istanza del contatore delle prestazioni

  1. Creare un'istanza del componente PerformanceCounter connesso al contatore da cui si desidera rimuovere un'istanza. Per ulteriori informazioni, vedere Procedura: creare istanze del componente PerformanceCounter.

  2. Impostare la proprietà InstanceName sull’istanza da eliminare.

  3. Chiamare il metodo RemoveInstance sul componente.

    Nell'esempio seguente viene mostrato come eliminare da un contatore un’istanza chiamata Reference:

    ' Assumes that you have configured PerformanceCounter1 to
    ' interact with the appropriate counter.
    PerformanceCounter1.InstanceName = "Reference"
    PerformanceCounter1.RemoveInstance()
    
         // Assumes that you have configured PerformanceCounter1 to
            // interact with the appropriate counter.
            PerformanceCounter1.InstanceName = "Reference";
            PerformanceCounter1.RemoveInstance();
    

Vedere anche

Attività

Procedura: creare istanze del componente PerformanceCounter

Concetti

Gestione di categorie e contatori