PerformanceCounter.NextSample 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
카운터 샘플을 가져와서 이에 대한 원시 값 또는 계산되지 않은 값을 반환합니다.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample ();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
반환
이 카운터에 대해 시스템이 다음에 가져오는 원시 값을 나타내는 CounterSample입니다.
예외
시스템 API에 액세스할 때 오류가 발생했습니다.
관리자 권한 없이 실행되는 코드가 성능 카운터를 읽으려고 한 경우
예제
다음 코드 예제를 사용 NextSample 하는 방법에 설명 합니다 카운터의 다음 계산 되지 않은 값을 가져오는 방법입니다. 이 코드 예제는 클래스에 대한 더 큰 예제의 PerformanceCounter 일부입니다.
void CollectSamples( ArrayList^ samplesList, PerformanceCounter^ PC, PerformanceCounter^ BPC )
{
Random^ r = gcnew Random( DateTime::Now.Millisecond );
// Loop for the samples.
for ( int j = 0; j < 100; j++ )
{
int value = r->Next( 1, 10 );
Console::Write( "{0} = {1}", j, value );
PC->IncrementBy( value );
BPC->Increment();
if ( (j % 10) == 9 )
{
OutputSample( PC->NextSample() );
samplesList->Add( PC->NextSample() );
}
else
Console::WriteLine();
System::Threading::Thread::Sleep( 50 );
}
}
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을 사용하여 성능 카운터 범주를 만든 경우 이 InvalidOperationException throw됩니다. 이전 버전으로 만든 성능 카운터 범주는 전역 공유 메모리를 사용하며 의 값 InstanceLifetime 은 이어야 Global합니다. 버전 1.0 또는 1.1의.NET Framework에서 실행 중인 애플리케이션 범주를 사용 하지 않으면 삭제 하 고 범주를 다시 만듭니다.
참고
Windows Vista, Windows XP Professional x64 Edition 또는 Windows Server 2003에서 성능 카운터를 읽으려면 성능 모니터 사용자 그룹의 구성원이거나 관리 권한이 있어야 합니다.
Windows Vista의 성능 카운터에 액세스하기 위해 권한을 상승시킬 필요가 없도록 성능 모니터 사용자 그룹에 자신을 추가합니다.
Windows Vista에서는 UAC(사용자 계정 컨트롤)가 사용자 권한을 결정합니다. 기본 제공 Administrators 그룹의 멤버인 경우 두 개의 런타임 액세스 토큰(표준 사용자 액세스 토큰 및 관리자 액세스 토큰)이 할당됩니다. 기본적으로 표준 사용자 역할이 지정됩니다. 성능 카운터에 액세스하는 코드를 실행하려면 먼저 표준 사용자에서 관리자로 권한을 상승시켜야 합니다. 애플리케이션 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자로 실행하도록 지정하여 애플리케이션을 시작하면 이 작업을 수행할 수 있습니다.
적용 대상
.NET