方法 : カウンタおよびカテゴリの存在を確認する
更新 : 2007 年 11 月
PerformanceCounterCategory クラスの CounterExists メソッドを使用して、ローカル コンピュータまたはリモート コンピュータ上の特定のカテゴリに特定のカウンタが存在するかどうかを確認できます。新しいカウンタを作成する前にこれを確認することにより、同じ名前を持つ別のカウンタが存在することから生じるエラーを防ぐことができます。
また、カウンタが存在するかどうかを確認するために、PerformanceCounterCategory クラスの Exists メソッドを使用して特定のカテゴリが存在するかどうかを確認できます。これは、カスタム カウンタの作成時に、そのカウンタを含むカテゴリが既に存在するかどうかを判断するために行うことができます。指定したカテゴリが既に作成されている場合、Create メソッドはエラーを発生させます。
Exists メソッドと CounterExists メソッドは、そのアイテムが存在する場合は true、存在しない場合は false を返します。
カウンタが存在するかどうかを確認するには
次のパラメータを指定して、PerformanceCounterCategory クラスの Exists メソッドを呼び出します。
パラメータ
値
CounterName
問い合わせるカウンタの名前
CategoryName
サーバー上に存在するパフォーマンス オブジェクトの任意のカテゴリ
MachineName
カテゴリおよびカウンタを配置するサーバー
メモ : Visual Basic では、MachineName パラメータは省略可能です。このパラメータを省略すると、既定でローカル コンピュータが使用されます。C# の場合、コンピュータ名を指定したくないときは、Exists メソッドのオーバーロードを使用できます。
カテゴリが存在するかどうかを確認するには
次のパラメータを指定して、PerformanceCounterCategory クラスの Exists メソッドを呼び出します。
パラメータ
値
CategoryName
問い合わせる任意のカテゴリ
MachineName
カテゴリを配置するサーバー
次の例は、カテゴリおよびカウンタを作成する前に If ステートメントを使用してカテゴリの有無を確認する方法を示しています。
If Not (PerformanceCounterCategory.Exists("MyCat")) Then PerformanceCounterCategory.Create( _ "MyCat", "Description", _ PerformanceCounterCategoryType.SingleInstance, _ "MyCounter", "Description") End If
if (!System.Diagnostics.PerformanceCounterCategory.Exists("MyCat")) { System.Diagnostics.PerformanceCounterCategory.Create( "MyCat", "Description", PerformanceCounterCategoryType.SingleInstance, "MyCounter", "Description"); }