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!