Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

Stopwatch Sınıfı

 

Bir dizi yöntem ve doğru şekilde ölçü geçen süre için kullanabileceğiniz özellikleri sağlar.

Bu tür için .NET Framework kaynak koda göz atmak için bkz: Reference Source.

Ad alanı:   System.Diagnostics
Derleme:  System (System.dll içinde)

System.Object
  System.Diagnostics.Stopwatch

public class Stopwatch

AdıAçıklama
System_CAPS_pubmethodStopwatch()

Yeni bir örneğini başlatır Stopwatch sınıfı.

AdıAçıklama
System_CAPS_pubpropertyElapsed

Geçerli örnek tarafından ölçülen toplam geçen zaman alır.

System_CAPS_pubpropertyElapsedMilliseconds

Geçerli örnek, milisaniye cinsinden ölçülen toplam geçen zaman alır.

System_CAPS_pubpropertyElapsedTicks

Toplam DPC geçerli örnekte ölçülen süreyi alır.

System_CAPS_pubpropertyIsRunning

Belirten bir değer alır olup olmadığını Stopwatch Süreölçer çalışır.

AdıAçıklama
System_CAPS_pubmethodEquals(Object)

Belirtilen nesnenin geçerli nesneyle eşit olup olmadığını belirler.(Object kaynağından devralındı.)

System_CAPS_protmethodFinalize()

Kaynakları serbest ve atık toplama işlemi tarafından alınmadan önce diğer temizleme işlemleri gerçekleştirmek bir nesne sağlar.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetHashCode()

Varsayılan karma işlevi olarak görev yapar.(Object kaynağından devralındı.)

System_CAPS_pubmethodSystem_CAPS_staticGetTimestamp()

Süreölçer mekanizması ticks geçerli sayısını alır.

System_CAPS_pubmethodGetType()

Alır Type geçerli örneği.(Object kaynağından devralındı.)

System_CAPS_protmethodMemberwiseClone()

Geçerli basit bir kopyasını oluşturur Object.(Object kaynağından devralındı.)

System_CAPS_pubmethodReset()

Zaman aralığı ölçümüne durdurur ve geçen süreyi sıfırlar.

System_CAPS_pubmethodRestart()

Zaman aralığı ölçümüne durdurur, geçen süre sıfırlar ve geçen süre ölçme başlar.

System_CAPS_pubmethodStart()

Başlar veya bir zaman aralığı için geçen süre ölçme sürdürür.

System_CAPS_pubmethodSystem_CAPS_staticStartNew()

Yeni bir başlatır Stopwatch örneği, geçen süre özelliği sıfır olarak ayarlar ve geçen süre ölçme başlatır.

System_CAPS_pubmethodStop()

Bir aralık için geçen süre ölçme durdurur.

System_CAPS_pubmethodToString()

Geçerli nesneyi temsil eden bir dize döndürür.(Object kaynağından devralındı.)

AdıAçıklama
System_CAPS_pubfieldSystem_CAPS_staticFrequency

Süreölçer sıklığını saniyede sayısı olarak alır. Bu alan salt okunurdur.

System_CAPS_pubfieldSystem_CAPS_staticIsHighResolution

Süreölçer yüksek çözünürlüklü performans sayacına dayalı olup olmadığını gösterir. Bu alan salt okunurdur.

System_CAPS_noteNot

Bu tür için .NET Framework kaynak kodunu görüntülemek için bkz: Reference Source. Kaynak kodda Çevrimiçi Gözat, çevrimdışı izleme için başvuru indirmek ve hata ayıklama sırasında (düzeltme eklerinin ve güncelleştirmeleri dahil) kaynakları aracılığıyla adım; see instructions.

Bir Stopwatch örneği ölçü geçen süre bir aralık veya geçen süre toplam birden çok aralıkları arasında. Tipik olarak Stopwatch senaryo, çağırırsınız Start yöntemi, sonuçta çağrı Stop yöntemi ve ardından, kontrol geçen süre kullanarak Elapsed özelliği.

Bir Stopwatch örneği çalışan veya durdurulmuş; kullanmak IsRunning geçerli durumunu belirlemek için bir Stopwatch. Kullanmak Start geçen süre; ölçmeye başlamak için kullanmak Stop geçen süre ölçme durdurmak için. Geçen süre değerini özellikleri aracılığıyla sorgulamak Elapsed, ElapsedMilliseconds, veya ElapsedTicks. Örnek çalışan veya durdurulmuş olsa geçen süre özellikleri sorgulayabilir. Özellikleri kararlı artırmak geçen süre while Stopwatch olan örnek durdurulduğunda çalıştıran; bunlar sabit kalır.

Varsayılan olarak, geçen süre değerini bir Stopwatch örneği tüm ölçülen zaman aralıkları toplam eşittir. Her çağrı Start Toplu geçen zaman; sayım başladığı her çağrı Stop Geçerli aralık ölçüm sona erer ve donuyor toplu geçen süre değeri. Kullanım Reset yöntemi içinde var olan toplu geçen süre temizlemek için Stopwatch örneği.

Stopwatch DPC temel Zamanlayıcı mekanizması içinde sayılarak geçen süreyi ölçer. Yüklü donanım ve işletim sistemi bir yüksek çözünürlüklü performans sayacı destekliyorsa sonra Stopwatch sınıfı Bu sayaç geçen süreyi ölçmek için kullanır. Aksi takdirde Stopwatch sınıfı geçen süreyi ölçmek için sistem saati kullanır. Kullanım Frequency ve IsHighResolution duyarlık ve çözümü belirlemek için alanları Stopwatch Zamanlama uygulaması.

Stopwatch Sınıfı, zamanlama ile ilgili performans sayaçları yönetilen kod içinde işlenmesini yardımcı olur. Özellikle, Frequency alan ve GetTimestamp yöntemi yönetilmeyen Win32 API yerine kullanılabilir QueryPerformanceFrequency ve QueryPerformanceCounter.

System_CAPS_noteNot

Çok işlemcili bir bilgisayardaki hangi işlemci üzerinde çalıştığını iş parçacığı önemli değildir. Ancak, BIOS veya donanım özet düzeyi (HAL) hatalar nedeniyle, farklı işlemci farklı zamanlama sonuçlar alabilirsiniz. Bir iş parçacığı için işlemci benzeşimi belirtmek için kullanın ProcessThread.ProcessorAffinity yöntemi.

Aşağıdaki örnek nasıl kullanılacağını gösterir Stopwatch bir uygulama için yürütme süresini belirlemek için sınıf.

using System;
using System.Diagnostics;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Stopwatch stopWatch = new Stopwatch();
        stopWatch.Start();
        Thread.Sleep(10000);
        stopWatch.Stop();
        // Get the elapsed time as a TimeSpan value.
        TimeSpan ts = stopWatch.Elapsed;

        // Format and display the TimeSpan value.
        string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            ts.Hours, ts.Minutes, ts.Seconds,
            ts.Milliseconds / 10);
        Console.WriteLine("RunTime " + elapsedTime);
    }
}

Aşağıdaki örnek kullanımını gösterir Stopwatch Performans verileri hesaplamak için sınıf.

using System;
using System.Diagnostics;

namespace StopWatchSample
{
    class OperationsTimer
    {
        public static void Main()
        {
            DisplayTimerProperties();

            Console.WriteLine();
            Console.WriteLine("Press the Enter key to begin:");
            Console.ReadLine();
            Console.WriteLine();

            TimeOperations();
        }

        public static void DisplayTimerProperties()
        {
            // Display the timer frequency and resolution.
            if (Stopwatch.IsHighResolution)
            {
                Console.WriteLine("Operations timed using the system's high-resolution performance counter.");
            }
            else 
            {
                Console.WriteLine("Operations timed using the DateTime class.");
            }

            long frequency = Stopwatch.Frequency;
            Console.WriteLine("  Timer frequency in ticks per second = {0}",
                frequency);
            long nanosecPerTick = (1000L*1000L*1000L) / frequency;
            Console.WriteLine("  Timer is accurate within {0} nanoseconds", 
                nanosecPerTick);
        }

        private static void TimeOperations()
        {
            long nanosecPerTick = (1000L*1000L*1000L) / Stopwatch.Frequency;
            const long numIterations = 10000;

            // Define the operation title names.
            String [] operationNames = {"Operation: Int32.Parse(\"0\")",
                                           "Operation: Int32.TryParse(\"0\")",
                                           "Operation: Int32.Parse(\"a\")",
                                           "Operation: Int32.TryParse(\"a\")"};


            // Time four different implementations for parsing 
            // an integer from a string. 

            for (int operation = 0; operation <= 3; operation++)
            {
                // Define variables for operation statistics.
                long numTicks = 0;
                long numRollovers = 0;
                long maxTicks = 0;
                long minTicks = Int64.MaxValue;
                int indexFastest = -1;
                int indexSlowest = -1;
                long milliSec = 0;

                Stopwatch time10kOperations = Stopwatch.StartNew();

                // Run the current operation 10001 times.
                // The first execution time will be tossed
                // out, since it can skew the average time.

                for (int i=0; i<=numIterations; i++) 
                {
                    long ticksThisTime = 0;
                    int inputNum;
                    Stopwatch timePerParse;

                    switch (operation)
                    {
                        case 0:
                            // Parse a valid integer using
                            // a try-catch statement.

                            // Start a new stopwatch timer.
                            timePerParse = Stopwatch.StartNew();

                            try 
                            {
                                inputNum = Int32.Parse("0");
                            }
                            catch (FormatException)
                            {
                                inputNum = 0;
                            }

                            // Stop the timer, and save the
                            // elapsed ticks for the operation.

                            timePerParse.Stop();
                            ticksThisTime = timePerParse.ElapsedTicks;
                            break;
                        case 1:
                            // Parse a valid integer using
                            // the TryParse statement.

                            // Start a new stopwatch timer.
                            timePerParse = Stopwatch.StartNew();

                            if (!Int32.TryParse("0", out inputNum))
                            { 
                                inputNum = 0;
                            }

                            // Stop the timer, and save the
                            // elapsed ticks for the operation.
                            timePerParse.Stop();
                            ticksThisTime = timePerParse.ElapsedTicks;
                            break;
                        case 2:
                            // Parse an invalid value using
                            // a try-catch statement.

                            // Start a new stopwatch timer.
                            timePerParse = Stopwatch.StartNew();

                            try 
                            {
                                inputNum = Int32.Parse("a");
                            }
                            catch (FormatException)
                            {
                                inputNum = 0;
                            }

                            // Stop the timer, and save the
                            // elapsed ticks for the operation.
                            timePerParse.Stop();
                            ticksThisTime = timePerParse.ElapsedTicks;
                            break;
                        case 3:
                            // Parse an invalid value using
                            // the TryParse statement.

                            // Start a new stopwatch timer.
                            timePerParse = Stopwatch.StartNew();

                            if (!Int32.TryParse("a", out inputNum))
                            { 
                                inputNum = 0;
                            }

                            // Stop the timer, and save the
                            // elapsed ticks for the operation.
                            timePerParse.Stop();
                            ticksThisTime = timePerParse.ElapsedTicks;
                            break;

                        default:
                            break;
                    }

                    // Skip over the time for the first operation,
                    // just in case it caused a one-time
                    // performance hit.
                    if (i == 0)
                    {
                        time10kOperations.Reset();
                        time10kOperations.Start();
                    }
                    else 
                    {

                        // Update operation statistics
                        // for iterations 1-10001.
                        if (maxTicks < ticksThisTime)
                        {
                            indexSlowest = i;
                            maxTicks = ticksThisTime;
                        }
                        if (minTicks > ticksThisTime)
                        {
                            indexFastest = i;
                            minTicks = ticksThisTime;
                        }
                        numTicks += ticksThisTime;
                        if (numTicks < ticksThisTime)
                        {
                            // Keep track of rollovers.
                            numRollovers ++;
                        }
                    }
                }  

                // Display the statistics for 10000 iterations.

                time10kOperations.Stop();
                milliSec = time10kOperations.ElapsedMilliseconds;

                Console.WriteLine();
                Console.WriteLine("{0} Summary:", operationNames[operation]);
                Console.WriteLine("  Slowest time:  #{0}/{1} = {2} ticks",
                    indexSlowest, numIterations, maxTicks);
                Console.WriteLine("  Fastest time:  #{0}/{1} = {2} ticks",
                    indexFastest, numIterations, minTicks);
                Console.WriteLine("  Average time:  {0} ticks = {1} nanoseconds", 
                    numTicks / numIterations, 
                    (numTicks * nanosecPerTick) / numIterations );
                Console.WriteLine("  Total time looping through {0} operations: {1} milliseconds", 
                    numIterations, milliSec);
            }
        }
     }
}

Evrensel Windows Platformu
8 sonrasında kullanılabilir
.NET Framework
2.0 sonrasında kullanılabilir
Taşınabilir Sınıf Kitaplığı
Destekleyen: taşınabilir .NET platformları
Windows Phone Silverlight
7.0 sonrasında kullanılabilir
Windows Phone
8.1 sonrasında kullanılabilir

Bu türdeki herhangi bir public static (Visual Basic’te Paylaşılan Visual Basic'te), bu tür üyeler iş parçacığı güvenliklidir. Hiçbir örnek üyesinin, iş parçacığı güvenli olduğu garanti edilmez.

Başa dön
Show: