方法 : パフォーマンス カウンタのインスタンスを追加または削除する

更新 : 2007 年 11 月

カウンタおよびカテゴリを使用している間に、インスタンスを動的に追加または削除できます。たとえば、Web ベースの小売りアプリケーションの各ユーザーに対してインスタンスを追加し、各ユーザーの行った操作に関する情報を追跡して、ユーザーのセッション終了時にインスタンスを削除できます。

インスタンスを追加するには、カウンタに対して生の値を設定します。カウンタのインスタンスが存在しない場合は、RawValue プロパティを最初に設定したときにインスタンスが作成され、それ以降に生の値に対して行った操作は、他のインスタンスが指定されない限り、そのインスタンスに対して適用されると仮定されます。新しいインスタンス名を指定してその後に値を設定することにより、追加のインスタンスを作成できます。

8t39y5k1.alert_note(ja-jp,VS.90).gifメモ :

インスタンスは、新しいインスタンスの名前を指定するプロセスではなく、インスタンスの値を設定するプロセスによって作成されます。

カテゴリの作成時以外は既存のカテゴリに追加できないカウンタとは異なり、インスタンスはいつでもユーザー定義カテゴリに追加したり、ユーザー定義カテゴリから削除したりできます。別のインスタンスに切り替えるには、InstanceName プロパティを使用できます。

RemoveInstance メソッドを使用して、カスタム パフォーマンス カウンタのインスタンスをメモリから削除できます。たとえば、Web ベースの小売りアプリケーションで OrderInProgress というカテゴリを使用し、各ユーザーの現在の買い物カゴに対してインスタンスを保持している場合を考えます。ユーザーがカートに初めて商品を追加したときに、アプリケーションはそのユーザーに対して新しいインスタンスを作成します。ユーザーが注文を完了すると、アプリケーションはインスタンスを削除します。注文を完了するまでの間は、NumberofItemsinCart、TimeSinceCreation、NumberofItemsAddedPerSecond などのカウンタによってインスタンスを更新します。

既定で Windows に含まれているパフォーマンス カウンタからインスタンスを削除することはできません。PerformanceCounter コンポーネントが有効なインスタンスを参照していない場合、このメソッドは例外をスローします。

8t39y5k1.alert_note(ja-jp,VS.90).gifメモ :

Microsoft Windows NT 4.0 では、PerformanceCounter クラスは完全にはサポートされていません。システム カウンタから読み取ることはできますが、カスタム カウンタの作成、書き込み、削除を行うことはできません。

パフォーマンス カウンタのインスタンスを追加するには

  1. カテゴリおよびカウンタを手動で作成します。詳細については、「方法 : パフォーマンス カウンタのカテゴリを作成する」を参照してください。

  2. InstanceName プロパティをインスタンスの固有の名前に設定し、インスタンスの RawValue プロパティを設定します。

    パフォーマンス カウンタの既存のカテゴリに対して複数のインスタンスを作成するコードを、次に示します。

    ' 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;
    
    

パフォーマンス カウンタのインスタンスを削除するには

  1. インスタンスを削除するカウンタに接続されている PerformanceCounter コンポーネントのインスタンスを作成します。詳細については、「方法 : PerformanceCounter コンポーネントのインスタンスを作成する」を参照してください。

  2. InstanceName プロパティを対象のインスタンスに設定します。

  3. コンポーネントの RemoveInstance メソッドを呼び出します。

    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();
    

参照

処理手順

方法 : PerformanceCounter コンポーネントのインスタンスを作成する

概念

カテゴリおよびカウンタの管理