Я только что видел этот вопрос , где один из ответов указывает, что System.Diagnostics.Stopwatch следует использовать только для диагностики производительности, а не в рабочем коде.
В таком случае, каков наилучший способ получить точную синхронизацию в .NET? В настоящее время я нахожусь на ранней стадии создания очень простого MIDI секвенсора с использованием функции MIDI-out NAudio . Я хотел бы иметь возможность отправлять MIDI-сообщения с выравниванием (скажем) 1/10 с минимальным джиттером, насколько это возможно. Возможно ли это, или такие вещи, как переключение контекста, разрушат мой день?
В настоящее время у меня есть некоторый код в консольном приложении, который непрерывно вызывает Stopwatch
и вычисляет дрожание при генерации потока 1/16 ноты со скоростью 150 ударов в минуту. В этой ситуации джиттер очень низкий. Однако я перенесу это в другой поток, так что я не знаю, останется ли это так.