Бөлісу құралы:


PerformanceCounter.NextSample Метод

Определение

Получает пример счетчика и возвращает необработанное или нерасчисленное значение для него.

public:
 System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample

Возвращаемое значение

Значение CounterSample , представляющее следующее необработанное значение, которое система получает для этого счетчика.

Исключения

Экземпляр неправильно связан с счетчиком производительности.

–или–

Для InstanceLifetime свойства задано Process значение при использовании глобальной общей памяти.

Ошибка при доступе к системным API.

Код, выполняющийся без прав администратора, пытался прочитать счетчик производительности.

Примеры

В следующем примере кода показано, как использовать NextSample метод для получения следующего нерасчисленного значения счетчика. Этот пример кода является частью более крупного примера для PerformanceCounter класса.

private static void CollectSamples(ArrayList samplesList)
{

    Random r = new Random( DateTime.Now.Millisecond );

    // Loop for the samples.
    for (int j = 0; j < 100; j++)
    {

        int value = r.Next(1, 10);
        Console.Write(j + " = " + value);

        avgCounter64Sample.IncrementBy(value);

        avgCounter64SampleBase.Increment();

        if ((j % 10) == 9)
        {
            OutputSample(avgCounter64Sample.NextSample());
            samplesList.Add( avgCounter64Sample.NextSample() );
        }
        else
        {
            Console.WriteLine();
        }

        System.Threading.Thread.Sleep(50);
    }
}
Private Shared Sub CollectSamples(ByVal samplesList As ArrayList)

    Dim r As New Random(DateTime.Now.Millisecond)

    ' Loop for the samples.
    Dim j As Integer
    For j = 0 To 99

        Dim value As Integer = r.Next(1, 10)
        Console.Write(j.ToString() + " = " + value.ToString())

        avgCounter64Sample.IncrementBy(value)

        avgCounter64SampleBase.Increment()

        If j Mod 10 = 9 Then
            OutputSample(avgCounter64Sample.NextSample())
            samplesList.Add(avgCounter64Sample.NextSample())
        Else
            Console.WriteLine()
        End If
        System.Threading.Thread.Sleep(50)
    Next j
End Sub

Комментарии

Этот метод обычно используется для счетчиков, содержащих нерасчетные значения.

Замечание

Если для свойства задано Process значение InstanceLifetime и категория счетчика производительности была создана с помощью .NET Framework версии 1.0 или 1.1, InvalidOperationException создается исключение. Категории счетчиков производительности, созданные с использованием предыдущих версий, используют глобальную общую память, а значение InstanceLifetime должно быть Global. Если категория не используется приложениями, работающими в версиях 1.0 или 1.1 платформы .NET Framework, удалите и повторно создайте категорию.

Замечание

Для чтения счетчиков производительности в Windows Vista, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы пользователей монитора производительности или иметь права администратора.

Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista, добавьте себя в группу "Пользователи монитора производительности".

В Windows Vista контроль учетных записей (UAC) определяет привилегии пользователя. Если вы являетесь членом встроенной группы "Администраторы", вы назначаете два маркера доступа во время выполнения: маркер доступа стандартного пользователя и маркер доступа администратора. По умолчанию вы находитесь в стандартной роли пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии от стандартного пользователя к администратору. Это можно сделать при запуске приложения, щелкнув правой кнопкой мыши значок приложения и указав, что вы хотите запустить от имени администратора.

Применяется к