私はここで何か非常に間違っている必要があります。パフォーマンスカウンターが変更されないのはなぜですか?
string counterCategory = "Test Category";
string counterName = "Test Counter";
if (!PerformanceCounterCategory.Exists(counterCategory))
{
Console.WriteLine("Creating Counters");
CounterCreationDataCollection counterCreationDataCollection =
new CounterCreationDataCollection();
counterCreationDataCollection.Add(
new CounterCreationData(counterName,
"Description",
PerformanceCounterType.NumberOfItems32)
);
PerformanceCounterCategory.Create(counterCategory,
"My category description/Help",
PerformanceCounterCategoryType.SingleInstance,
counterCreationDataCollection);
}
パフォーマンスカウンタでカウンタカテゴリとカウンタが作成され、表示されます。
私は、カウンタ
PerformanceCounter myCounter =
new PerformanceCounter(counterCategory, counterName, false);
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Setting to "+i);
myCounter.RawValue = i;
Thread.Sleep(200);
}
myCounter.Close();
の値を変更しようしかし、私が座っていると、何も起こりませんパフォーマンスモニタでカウンタを見て、値が変わることはありません。
だから私は間違って何をやっていますか?
私はnextValueメソッド()、または私は予想通りとは値が返されますが、Windowsのパフォーマンスモニタはまだ、例えばフラットなラインを示しrawValue()の呼び出しを追加した場合
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Setting to "+i);
myCounter.IncrementValue()
Console.WriteLine("Next Value = "+myCounter.RawValue());
Thread.Sleep(200);
}
編集:私はパフォーマンスモニタを閉じてから、カウンターを削除せずに、それを再度開く場合は、その突然、それは新しい価値があります実現していることがわかりました。したがって、値は設定されており、永続化されますが、パフォーマンスモニタでは変更が表示されません。
私の場合は、再起動してください。 –