سؤال

لقد رأيت للتو هذا السؤال, ، حيث يشير أحد الإجابات إلى ذلك system.diagnostics.stopwatch. يجب أن تستخدم فقط لتشخيص الأداء وليس في قانون الإنتاج.

في هذه الحالة، ماذا ستكون أفضل طريقة للحصول على توقيت الدقة في .NET؟ أنا حاليا في المراحل المبكرة من بناء بسيطة للغاية ميدي التسلسل باستخدام وظيفة MIDI خارج نوديو. وبعد أود أن أكون قادرا على إرسال رسائل MIDI محاذاة إلى (Say) 1/10s مع jitter قليلا قدر الإمكان. هل هذا ممكن، أو سوف أشياء مثل تدمر التبديل السياق يومي؟

لدي حاليا بعض التعليمات البرمجية في تطبيق Console يستدعي باستمرار Stopwatch وحساب الابتراض عند إنشاء دفق من 1/16 الملاحظات في 150bpm. الهرسب منخفض جدا في هذه الحالة. ومع ذلك، سأقوم بتوجيه هذا إلى مؤشر ترابط آخر، لذلك لا أعرف ما إذا كان ذلك سيبقى الأمر كذلك.

هل كانت مفيدة؟

المحلول

إذا كنت لا تمانع P / Invoke، يمكنك استخدام QueryPerformancounter: http://www.eggheadcafe.com/articles/20021111.asp.

نصائح أخرى

يمكنك أيضا استخدام واجهة برمجة تطبيقية MIDI الأصلية. لا أعتقد أنه في Naudio ولكن يمكنك إلقاء نظرة على مجموعة أدوات C # MIDI لمعرفة ما إذا كان هذا يدعمه. وإلا فإن لديك مثالين حول كيفية القيام باللوم MIDI API P / API P / Incoke ويمكن لفة خاصة بك ...

ويندوز الوسائط المتعددة الموقت تنص على أنها تسمح ب "تطبيقات لجدولة أحداث المؤقت بأكبر قرار (أو دقة) ممكنة لمنصة الأجهزة".

التطبيق يستخدم كمثال هو تساعد MIDI.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top