Pregunta

Yo sólo he visto esta pregunta , donde una de las respuestas indica que System.Diagnostics.Stopwatch debe ser utilizado para el diagnóstico de rendimiento y no en el código de producción.

En ese caso, ¿cuál sería la mejor manera de conseguir una sincronización perfecta en .NET? Actualmente estoy en las primeras etapas de la construcción de una muy simple rel="nofollow secuenciador MIDI utilizando el MIDI de salida funcionalidad de NAudio . Me gustaría ser capaz de enviar mensajes MIDI a cabo alineados con (digamos) 1 / 10s con tan poco como sea posible fluctuación. ¿Es esto posible, o cosas que le gusten contexto de conmutación de arruinar mi día?

Actualmente tengo un poco de código en una aplicación de consola que llama continuamente Stopwatch y calcula la fluctuación de fase cuando se genera una corriente de 1/16-notas en 150bpm. La fluctuación es muy baja en esta situación. Sin embargo, me mudaré a esto de otro hilo, por lo que no sé si eso va a seguir siendo el mismo.

¿Fue útil?

Solución

Si no te importa P / Invoke, puede utilizar QueryPerformanceCounter: http: // www .eggheadcafe.com / artículos / 20021111.asp

Otros consejos

También puede utilizar la API de streaming MIDI nativo. Yo no creo que es en NAudio pero se puede mirar el kit de herramientas de C # Mediodía para ver si eso uno lo apoya. De lo contrario tienes dos ejemplos de cómo hacerlo API nativa MIDI P / Invoke y puede rodar su propia ...

temporizador multimedia de Windows estados que permite "aplicaciones para programar eventos del temporizador con la mayor resolución (o precisión) posible para la plataforma de hardware."

La aplicación que utiliza como ejemplo es un secuenciador MIDI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top