我刚刚看到这个问题,其中一个答案表明System.Diagnostics.Stopwatch应该只用于诊断性能,而不是用于生产代码。
在这种情况下,在 .NET 中获得精确计时的最佳方法是什么?我目前正处于使用NAudio的 MIDI 输出功能构建一个非常简单的MIDI 音序器的早期阶段。我希望能够以尽可能少的抖动将 MIDI 消息发送到(比如说)1/10 秒。这是可行的,还是像上下文切换这样的事情会毁了我的一天?
我目前在控制台应用程序中有一些代码,它Stopwatch
在以 150bpm 生成 1/16 音符流时不断调用和计算抖动。在这种情况下,抖动非常低。但是,我将把它移到另一个线程,所以我不知道这种情况是否会继续存在。