gpt4 book ai didi

.net - 从 C# 中的计时器获取准确的滴答声

转载 作者:行者123 更新时间:2023-12-02 20:01:14 26 4
gpt4 key购买 nike

我正在尝试重建一个旧的节拍器应用程序,该应用程序最初是使用 C++ 中的 MFC 编写的,现在使用 C# 在 .NET 中编写。我遇到的问题之一是让计时器足够准确地“滴答”。

例如,假设简单的 BPM(每分钟节拍数)为 120,则计时器应每 0.5 秒(或 500 毫秒)滴答一次。然而,使用它作为滴答的基础并不完全准确,因为 .NET 只能保证您的计时器在耗时过去之前不会滴答。

目前,为了解决上面使用的相同 120 BPM 示例的问题,我将滴答声设置为 100 毫秒左右,并且仅在每 5 个计时器滴答声时播放点击声音。这确实大大提高了准确性,但感觉有点像黑客。

那么,获得准确报价的最佳方法是什么?我知道有比 Visual Studio 中可用的 Windows 窗体计时器更多的可用计时器,但我不太熟悉它们。

最佳答案

.NET 中有三个称为“Timer”的计时器类。听起来您正在使用 Windows 窗体,但实际上您可能会发现 System.Threading.Timer 类更有用 - 但要小心,因为它会回调池线程,因此您无法直接与窗体交互回调。

另一种方法可能是 p/调用 Win32 多媒体计时器 - timeGetTime、timeSetPeriod 等。

快速谷歌发现了这个,这可能有用http://www.codeproject.com/KB/miscctrl/lescsmultimediatimer.aspx

“多媒体”(计时器)是在此上下文中搜索的流行词。

关于.net - 从 C# 中的计时器获取准确的滴答声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com