2015-10-05 7 views
1

Я пытаюсь использовать счетчик производительности .NET в своем приложении. Вот код:Ошибка при использовании счетчиков производительности .net

if (!PerformanceCounterCategory.Exists("Processor")) 
{ 
    CounterCreationDataCollection CCDC = new CounterCreationDataCollection(); 

    // Add the counter. 
    CounterCreationData NOI64 = new CounterCreationData(); 
    NOI64.CounterType = PerformanceCounterType.NumberOfItems64; 
    NOI64.CounterName = "%Processor Time"; 
    CCDC.Add(NOI64); 

    // Create the category. 
    PerformanceCounterCategory.Create("Processor", "", PerformanceCounterCategoryType.SingleInstance, CCDC); 
} 
PerformanceCounter PC = new PerformanceCounter("Processor", "%Processor Time", false); 
PC.RawValue = 0; 

Когда я выполняю этот код, я получаю аварии на PerformanceCounter PC = new PerformanceCounter("Processor", "%Processor Time", false); нижеперечисленного

необработанного исключение типа 'System.InvalidOperationException' произошел в System.dll

Дополнительная информация: запрошенный счетчик производительности не является настраиваемым счетчиком, его нужно инициализировать как ReadOnly.

Я попытался using lodctr команда также, но это впадина работа, как указано в The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly

ответ

1

Так что вы пытаетесь достичь? В нем четко сказано, что вы должны инициализировать его как только для чтения. Итак, согласно documentation, вы должны пройти true, а не false в качестве третьего параметра.

Кроме того, не присваивайте ноль RawValue. Это не сработает (поскольку счетчик доступен только для чтения).

+0

awww ... Я действительно упускал из виду этот параметр и много помогал в настройке счетчиков производительности. Спасибо за вашу помощь... – Nipun

 Смежные вопросы

  • Нет связанных вопросов^_^