PerformanceCounter.NextSample PerformanceCounter.NextSample PerformanceCounter.NextSample PerformanceCounter.NextSample Method

定義

カウンター サンプルを取得し、生の、つまり計算されない値を返します。Obtains a counter sample, and returns the raw, or uncalculated, value for it.

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

戻り値

このカウンターのためにシステムで取得された値の、次の生の値を表す CounterSampleA CounterSample that represents the next raw value that the system obtains for this counter.

例外

インスタンスがパフォーマンス カウンターに正しく関連付けられていません。The instance is not correctly associated with a performance counter.

- または --or- グローバル共有メモリを使用する場合、InstanceLifetime プロパティは Process に設定されます。The InstanceLifetime property is set to Process when using global shared memory.

システム API にアクセス中にエラーが発生しました。An error occurred when accessing a system API.

管理特権を使用せずに実行されているコードがパフォーマンス カウンターの読み取りを試みました。Code that is executing without administrative privileges attempted to read a performance counter.

次のコード例は、 NextSampleメソッドを使用して、カウンターの次のつまり値を取得する方法を示しています。The following code example demonstrates how to use the NextSample method to obtain the next uncalculated value of a counter. このコード例は、 PerformanceCounterクラスのより大きな例の一部です。This code example is part of a larger example for the PerformanceCounter class.

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 'CollectSamples

注釈

このメソッドは、通常、つまり値を含むカウンターに使用されます。This method is generally used for counters that contain uncalculated values.

注意

InstanceLifetimeプロパティの値がProcessで、パフォーマンスカウンターカテゴリが .NET Framework バージョンInvalidOperationException 1.0 または1.1 で作成された場合は、がスローされます。If the value for the InstanceLifetime property is Process and the performance counter category was created with .NET Framework version 1.0 or 1.1, an InvalidOperationException is thrown. 以前のバージョンで作成されたパフォーマンスカウンターカテゴリは、グローバル共有メモリInstanceLifetimeを使用Globalし、の値はである必要があります。Performance counter categories created with earlier versions use global shared memory, and the value for InstanceLifetime must be Global. .NET Framework のバージョン1.0 または1.1 で実行されているアプリケーションでカテゴリが使用されていない場合は、カテゴリを削除して再作成します。If the category is not used by applications running on versions 1.0 or 1.1 of the .NET Framework, delete and recreate the category.

注意

Windows Vista、Windows XP Professional x64 Edition、または Windows Server 2003 でパフォーマンスカウンターを読み取るには、Performance Monitor Users グループのメンバであるか、管理者特権を持っている必要があります。To read performance counters in Windows Vista, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Windows Vista のパフォーマンスカウンターにアクセスするために特権を昇格させる必要がないようにするには、Performance Monitor Users グループに自分自身を追加します。To avoid having to elevate your privileges to access performance counters in Windows Vista, add yourself to the Performance Monitor Users group.

Windows Vista では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。In Windows Vista, User Account Control (UAC) determines the privileges of a user. ユーザーが組み込みの Administrators グループのメンバーである場合、そのユーザーには標準ユーザー アクセス トークンおよび管理者アクセス トークンの 2 つのランタイム アクセス トークンが割り当てられています。If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. 既定では、ユーザーは標準ユーザー ロールに所属します。By default, you are in the standard user role. パフォーマンスカウンターにアクセスするコードを実行するには、まず、特権を標準ユーザーから管理者に昇格させる必要があります。To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. この操作は、アプリケーションの起動時にアプリケーション アイコンを右クリックし、管理者として実行することを指定して行うことができます。You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

セキュリティ

PerformanceCounterPermission
パフォーマンスカウンターカテゴリの読み取り。for reading the performance counter category. Read (関連する列挙体)Associated enumeration: Read.

適用対象