다음을 통해 공유


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 시스템에서 이 카운터에 대해 가져오는 다음 원시 값을 나타내는 A입니다.

예외

인스턴스가 성능 카운터와 올바르게 연결되지 않았습니다.

-또는-

전역 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

설명

이 메서드는 일반적으로 계산되지 않은 값을 포함하는 카운터에 사용됩니다.

메모

속성 값 InstanceLifetime 이고 성능 카운터 범주가 Process .NET Framework 버전 1.0 또는 1.1로 만들어진 경우 throw InvalidOperationException 됩니다. 이전 버전으로 만든 성능 카운터 범주는 전역 공유 메모리를 사용하며 값은 InstanceLifetime 이어야 Global합니다. .NET Framework 버전 1.0 또는 1.1에서 실행되는 애플리케이션에서 범주를 사용하지 않는 경우 범주를 삭제하고 다시 만듭니다.

메모

Windows Vista, Windows XP Professional x64 Edition 또는 Windows Server 2003에서 성능 카운터를 읽으려면 성능 모니터 사용자 그룹의 구성원이거나 관리 권한이 있어야 합니다.

Windows Vista의 성능 카운터에 액세스하기 위해 권한을 상승시킬 필요가 없도록 하려면 성능 모니터 사용자 그룹에 자신을 추가합니다.

Windows Vista에서 UAC(사용자 계정 컨트롤)는 사용자의 권한을 결정합니다. 기본 제공 관리자 그룹의 구성원인 경우 표준 사용자 액세스 토큰과 관리자 액세스 토큰이라는 두 개의 런타임 액세스 토큰이 할당됩니다. 기본적으로 표준 사용자 역할에 있습니다. 성능 카운터에 액세스하는 코드를 실행하려면 먼저 표준 사용자에서 관리자로 권한을 상승시켜야 합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행하려는 경우 애플리케이션을 시작할 때 이 작업을 수행할 수 있습니다.

적용 대상