Я начал разрабатывать простой консольный метроном и заметил, что что-то пошло не так с синхронизацией между ударами.
После того, как я установил темп и запустил метроном, какое-то время звуковые сигналы работают должным образом, а затем он нарушает монотонный ритм и начинает воспроизводить неточный звуковой сигнал со странным ритмом.
Кроме того, продолжительность звукового сигнала начинает сокращаться (сокращается) по мере увеличения темпа.
Я всегда получал ошибку через несколько секунд при 200 мс, так что простопротестируйте его в этом темпе, но когда вы уменьшите его (т.е. увеличьте разрыв между звуковыми сигналами), проблема будет возникать позже и позже, пока не исчезнет полностью (примерно через 7-800 мс).
Кстати,не имеет значения, какой метод я использую (Sleep или Delay) ...
Здесь очень упрощенный код, содержащий проблему.
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Temporary
{
class Program
{
static void Main()
{
while (true)
{
Console.Beep(2000, 200);
Thread.Sleep(200);
//Task.Delay(200).Wait();
}
}
}
}
Любая идея, что этоошибка и как я могу это исправить?Спасибо!