PerformanceCounter.IncrementBy(Int64) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kenaikan atau penurunan nilai penghitung kinerja terkait dengan jumlah tertentu melalui operasi atom yang efisien.
public:
long IncrementBy(long value);
public long IncrementBy(long value);
member this.IncrementBy : int64 -> int64
Public Function IncrementBy (value As Long) As Long
Parameter
- value
- Int64
Nilai untuk bertambah berdasar. (Nilai negatif mengurangi penghitung.)
Mengembalikan
Nilai penghitung baru.
Pengecualian
Penghitung bersifat baca-saja, sehingga aplikasi tidak dapat menaikkannya.
-atau-
Instans tidak dikaitkan dengan penghitung kinerja dengan benar.
-atau-
Properti InstanceLifetime diatur ke Process saat menggunakan memori bersama global.
Terjadi kesalahan saat mengakses API sistem.
Contoh
Contoh kode berikut menunjukkan cara menggunakan IncrementBy metode untuk menambahkan kenaikan ke penghitung. Contoh kode ini adalah bagian dari contoh yang lebih besar untuk PerformanceCounter kelas .
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
Keterangan
Anda hanya dapat menulis ke penghitung kustom. Semua penghitung sistem bersifat baca-saja.
Nota
Metode Increment, IncrementBy, dan Decrement menggunakan interlocks untuk memperbarui nilai penghitung. Ini membantu menjaga nilai penghitung tetap akurat dalam skenario multithreaded atau multiprocess, tetapi juga menghasilkan penalti performa. Jika Anda tidak memerlukan akurasi yang disediakan operasi yang saling mengunci, Anda dapat memperbarui RawValue properti secara langsung hingga 5 kali peningkatan performa. Namun, dalam skenario multithreaded, beberapa pembaruan pada nilai penghitung mungkin diabaikan, yang mengakibatkan data yang tidak akurat.
Nota
Jika nilai untuk InstanceLifetime properti adalah Process dan kategori penghitung kinerja dibuat dengan .NET Framework versi 1.0 atau 1.1, maka InvalidOperationException akan dilemparkan. Kategori penghitung kinerja yang dibuat dengan versi sebelumnya menggunakan memori bersama global, dan nilai untuk InstanceLifetime harus Global. Jika kategori tidak digunakan oleh aplikasi yang berjalan pada versi 1.0 atau 1.1 dari .NET Framework, hapus dan buat ulang kategori.
Berlaku untuk
Keamanan Thread
Metode ini aman untuk utas.