تفاصيل هذه المقالة بناء مؤقت عالي الدقة في C# يؤدي إلى حدوث حدث على فترات محددة ، مما يوفر تحكمًا أدق من فئة System.Timer . سنستكشف القيود المفروضة على خيارات .NET الحالية ونقدم حلًا باستخدام واجهة برمجة تطبيقات Windows Multimedia Timer.
قياس وقت عالي الدقة ، فهي غير مصممة للحدث الذي يشغل فترات زمنية دقيقة. يفتقر إطار .NET نفسه إلى ما يعادل احتياجاتنا المباشرة. لذلك ، سنستفيد من واجهة برمجة تطبيقات Windows Multimedia Timer ، والتي تم تحسينها لتوقيت الأحداث.
تنفيذ مؤقت عالي الدقة باستخدام واجهة برمجة تطبيقات Timer Multimedia
باستخدام النظام ؛ باستخدام System.Runtime.InteropServices ؛ الطبقة متعددة الوسائط: idisposable { بول خاص التخلص = خطأ ؛ الفاصل الزمني الخاص ، القرار ؛ خاص Uint Timerid ؛ استدعاء خاص ReadOnly MultimediatimerCallback ؛ المندوب العام void multimediatimercallback (Uint utimerid ، Uint UMSG ، intptr dwuser ، uint dw1 ، uint dw2) ؛ الحدث العام eventHandler
using System;
using System.Runtime.InteropServices;
class MultimediaTimer : IDisposable
{
private bool disposed = false;
private int interval, resolution;
private uint timerId;
private readonly MultimediaTimerCallback Callback;
public delegate void MultimediaTimerCallback(uint uTimerID, uint uMsg, IntPtr dwUser, uint dw1, uint dw2);
public event EventHandler TimerElapsed;
public MultimediaTimer()
{
Callback = new MultimediaTimerCallback(TimerCallbackMethod);
Resolution = 5; // Default resolution (milliseconds)
Interval = 10; // Default interval (milliseconds)
}
~MultimediaTimer() { Dispose(false); }
public int Interval
{
get { return interval; }
set
{
CheckDisposed();
if (value > 0) interval = value;
}
}
public int Resolution
{
get { return resolution; }
set
{
CheckDisposed();
if (value > 0 && value اعتبارات مهمة:
تتفاعل واجهة برمجة تطبيقات Timer Multimedia مع إعدادات على مستوى النظام ؛ يمكن أن تؤثر التعديلات على أداء النظام. مراقبة تواتر المؤقت لضمان مطابقة الفاصل الزمني المستهدف. تذكر أن Windows ليس نظام تشغيل في الوقت الفعلي ، لذلك قد يؤثر تحميل النظام على دقة الموقت.
خاتمة
توفر واجهة برمجة تطبيقات Timer Multimedia آلية قوية لإنشاء أجهزة ضبط الوقت عالية الدقة مع إشارات قائمة على الأحداث في C#، معالجة السيناريوهات حيث يكون التوقيت الدقيق أمرًا بالغ الأهمية. على الرغم من أنها ليست ميزة .NET أصلية ، فإن قدراتها تجعلها أداة قيمة لمتطلبات توقيت محددة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3