“计时器”组件不够准确,有没有替代方案
本文关键字:计时器 有没有 方案 组件 不够 | 更新日期: 2023-09-27 18:34:10
我需要每 0.03125 秒发生一次事件Timer
控制只能达到0.031秒
如何从Stopwatch
组件创建更准确的事件?
我发现这个,它比标准计时器更准确、更可靠!我简直不敢相信。
http://www.codeproject.com/Articles/5501/The-Multimedia-Timer-for-the-NET-Framework
引用:Win32 多媒体定时服务提供最大程度的计时精度。它们允许您以比其他定时服务更高的分辨率计划计时事件。这在时序精度至关重要的多媒体应用中非常有用。例如,MIDI 应用程序需要尽可能细粒度的计时事件。
不幸的是,Win32多媒体计时器不是.NET Framework的一部分。但是,通过使用 .NET 互操作性服务,可以将多媒体计时器引入 .NET 折叠。
Windows 不是实时操作系统 - 因此您无法保证在特定时间后执行方法。
你能做的最好的事情就是忙于等待检查时间(可能使用秒表)。
您还可以使用分辨率更高的多媒体计时器...(搜索查询 - C# 多媒体计时器,即从 C# 中的计时器获取准确的时钟周期)
一般来说,计时器只能精确到大约 15 毫秒,即便如此,也往往存在准确性问题,因为它们通常会被抢占。
拥有精度在四分之一毫秒范围内指定的计时器将需要实时操作系统,并且无论使用哪个计时器都可能无法正常工作。
"
我需要每 0.03125 秒发生一次事件"——为了可靠地达到这样的精度,请使用专用微控制器。
您无法在桌面操作系统上实现您似乎需要的东西。
带有 chek 秒表时间或更准确的计数器的高优先级线程和循环怎么样?