Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Pemasa Resolusi Tinggi dalam C# dengan Ketepatan 1ms?

Bagaimanakah Saya Boleh Mencipta Pemasa Resolusi Tinggi dalam C# dengan Ketepatan 1ms?

Linda Hamilton
Linda Hamiltonasal
2025-01-17 10:57:13834semak imbas

How Can I Create a High-Resolution Timer in C# with 1ms Accuracy?

Pemasa Resolusi Tinggi dalam C#

Kelas Sistem.Pemasa ialah pemasa yang biasa digunakan dalam C# yang menimbulkan acara apabila tamat tempoh. Walau bagaimanapun, untuk pemasaan resolusi tinggi, ia menjadi pendek. Artikel ini meneroka penyelesaian untuk mencipta pemasa resolusi tinggi yang melancarkan acara pada selang 1 ms.

Had Rangka Kerja BERSIH

Rangka kerja .NET tidak menawarkan terbina- sebagai sokongan untuk pemasa resolusi tinggi. Walau bagaimanapun, API Pemasa Multimedia dalam Windows menyediakan mekanisme untuk acara pemasa resolusi tinggi.

Pemasa Multimedia

API Pemasa Multimedia menyediakan pemasa yang boleh dikonfigurasikan dengan resolusi sehingga 1 ms. Kod berikut menunjukkan penggunaannya:

class MultimediaTimer : IDisposable
{
    // ...

    public int Interval
    {
        get { return interval; }
        set
        {
            // ...
        }
    }

    public int Resolution
    {
        get { return resolution; }
        set
        {
            // ...
        }
    }

    public void Start()
    {
        // ...
    }

    public void Stop()
    {
        // ...
    }

    public event EventHandler Elapsed;
}

Contoh Kod

Berikut ialah contoh lengkap yang menggunakan Pemasa Multimedia:

class Program
{
    public static void Main(string[] args)
    {
        TestThreadingTimer();
        TestMultimediaTimer();
    }

    private static void TestMultimediaTimer()
    {
        Stopwatch s = new Stopwatch();
        using (var timer = new MultimediaTimer() { Interval = 1 })
        {
            timer.Elapsed += (o, e) => Console.WriteLine(s.ElapsedMilliseconds);
            s.Start();
            timer.Start();
            Console.ReadKey();
            timer.Stop();
        }
    }

    // ...
}

Nota: API Pemasa Multimedia boleh memberi kesan kepada prestasi sistem, jadi penting untuk menggunakannya secara bijaksana. Perlu dipertimbangkan juga bahawa sistem mungkin mengalami turun naik dalam prestasi, yang membawa kepada variasi dalam kebolehpercayaan pemasa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Pemasa Resolusi Tinggi dalam C# dengan Ketepatan 1ms?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn