c # performanceCounter установка необработанного значения счетчика - PullRequest
1 голос
/ 05 марта 2009

Я пытаюсь c # PerformanceCounter Library часть System.Diagnostic. При установке необработанного значения счетчика с помощью

public long RawValue {set; получить; }

Я передавал Rawalue на 0. Однако я заметил, что максимальное значение счетчика было сброшено до очень большого числа. Предыдущее значение счетчика было 2

Может ли кто-нибудь помочь мне и указать на любую ошибку, которую я могу сделать, вот мой код

using (PerformanceCounter ctr = new     
PerformanceCounter(Settings.Instance.SetSourceAppliacationName, counter.ToString(), false))
{
    if (incrementCounter)
    {
        ctr.IncrementBy(value);
    }
    else
    {
        ctr.RawValue = value;
    }
}

1 Ответ

1 голос
/ 27 июня 2009

Не думаю, что вы действительно ошибаетесь.

Максимальное значение не является функцией самого PerformanceCounter; это часть инструмента мониторинга (например, PerfMon). Вы не можете установить его с помощью класса PerformanceCounter.

Одна вещь, которую вы, возможно, захотите сделать, - установить RawValue на ноль, прежде чем ваше приложение начнет пытаться применить к нему полезные данные. Это может быть сложно, если у вас есть несколько приложений, использующих либо одну категорию экземпляров (PerformanceCounterCategoryType.SingleInstance), либо одно и то же имя экземпляра (например, « total » имя экземпляра) для PerformanceCounterCategoryType.MultiInstance.

Очень большое число, скорее всего, является просто случайным числом из неинициализированного блока памяти, который используется для хранения переменной счетчика производительности. Поскольку несколько приложений могут пытаться получить доступ к текущему счетчику производительности путем создания экземпляра нового объекта PerformanceCounter, этот процесс создания экземпляров автоматически не устанавливает значение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...