方法 : パフォーマンス カウンタに値を書き込む
更新 : 2007 年 11 月
カウンタの現在の生の値を正または負の値だけインクリメントすることにより、カウンタに値を書き込むことができます。これには、PerformanceCounter クラスの IncrementBy メソッドを使用します。
メモ : |
---|
負の値だけインクリメントすると、その絶対値だけカウンタがデクリメントされます。たとえば、インクリメントする値が 3 の場合は、カウンタの生の値が 3 だけ増えます。インクリメントする値が -3 の場合は、カウンタの生の値が 3 だけ減ります。 |
また、Increment メソッドと Decrement メソッドを使用して、カウンタの値を 1 だけ増減できます。これらのメソッドは、IncrementBy よりもずっと高速で処理されます。
値をインクリメントできるのはカスタム カウンタだけです。既定では、PerformanceCounter コンポーネントのインスタンスを通じたシステム カウンタとのやり取りは、読み取り専用モードに制限されています。カスタム カウンタをインクリメントする前に、アクセスに使用するコンポーネントのインスタンスの ReadOnly プロパティを false に設定する必要があります。
メモ : |
---|
セキュリティ上の制限によって、使用できるパフォーマンス カウンタの機能が異なります。詳細については、「パフォーマンスしきい値の監視の概要」を参照してください。 |
メモ : |
---|
Microsoft Windows NT 4.0 では、PerformanceCounter クラスは完全にはサポートされていません。システム カウンタから読み取ることはできますが、カスタム カウンタの作成、書き込み、削除を行うことはできません。 |
パフォーマンス カウンタに値を書き込むには
PerformanceCounter インスタンスを作成し、目的のカテゴリおよびカウンタとやり取りするように設定します。詳細については、「方法 : PerformanceCounter コンポーネントのインスタンスを作成する」または「方法 : PerformanceCounter コンポーネントのインスタンスを設定する」を参照してください。
次のいずれかのメソッドを使用して値を書き込みます。
目的
呼び出すメソッド
パラメータ
生の値を 1 だけ大きくする
なし
生の値を 1 だけ小さくする
なし
生の値を 2 以上大きくする
正の整数
生の値を 2 以上小さくする
負の整数
生の値を増減するのではなく、任意の整数に再設定する
正または負の整数
カウンタの値をさまざまな方法で設定するコードを次に示します。このコードは、txtValue という名前のテキスト ボックスと 3 つのボタンを含んでいる Windows フォーム アプリケーションを想定しています。3 つのボタンとは、テキスト ボックスに入力された値だけ生の値をインクリメントするボタン、生の値を 1 だけ小さくするボタン、およびカウンタの生の値をテキスト ボックスに入力された値に設定するボタンです。
Private Sub btnIncrement_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnIncrement.Click PerformanceCounter1.ReadOnly = False PerformanceCounter1.IncrementBy(CLng(txtValue.Text)) End Sub Private Sub btnDecrement_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDecrement.Click PerformanceCounter1.ReadOnly = False PerformanceCounter1.Decrement() End Sub Private Sub btnSetValue_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnSetValue.Click PerformanceCounter1.ReadOnly = False PerformanceCounter1.RawValue = CLng(txtValue.Text) End Sub
protected void btnIncrement_Click(object sender, EventArgs e) { performanceCounter1.ReadOnly = false; performanceCounter1.IncrementBy(long.Parse(txtValue.Text)); } protected void btnDecrement_Click(object sender, EventArgs e) { performanceCounter1.ReadOnly = false; performanceCounter1.Decrement(); } protected void btnSetValue_Click(object sender, EventArgs e) { performanceCounter1.ReadOnly = false; performanceCounter1.RawValue = long.Parse(txtValue.Text); }