2

我需要每 0.03125 秒发生一次事件Timer控制只能到 0.031 秒

如何从Stopwatch更准确的组件创建事件?

4

5 回答 5

3

我发现了这个,它比标准计时器更准确可靠!我不敢相信。

http://www.codeproject.com/Articles/5501/The-Multimedia-Timer-for-the-NET-Framework

引用: Win32 多媒体计时器服务提供最大程度的计时准确性。它们允许您以比其他计时器服务更高的分辨率安排计时事件。这在计时精度至关重要的多媒体应用中非常有用。例如,MIDI 应用程序需要尽可能细粒度的时序事件。

不幸的是,Win32 多媒体计时器不是 .NET Framework 的一部分。但是,通过使用 .NET 互操作性服务,可以将多媒体计时器纳入 .NET 范围。

于 2012-05-16T01:20:05.127 回答
2

一般来说,定时器的精度只能在 15 毫秒左右,即使那样,也往往会出现精度问题,因为它们通常会被抢占。

拥有一个精度在四分之一毫秒范围内的计时器将需要一个实时操作系统,并且无论使用哪个计时器,都可能无法正常工作。

于 2012-05-15T17:15:11.953 回答
2

Windows 不是实时操作系统 - 因此您无法保证在特定时间后执行方法。

您能做的最好的事情就是经常忙着等待检查时间(可能使用秒表)。

您还可以使用分辨率更高的多媒体计时器...(搜索查询 - c# 多媒体计时器,即从 C# 中的计时器获取准确的滴答声

于 2012-05-15T17:13:50.157 回答
2

“我需要每 0.03125 秒发生一次事件”——要可靠地达到这样的精度,请使用专用的微控制器。

您无法在桌面操作系统上实现您似乎需要的东西。

于 2012-05-15T17:18:44.013 回答
1

使用 chek 秒表时间或更准确的计数器的高优先级线程和循环怎么样?

于 2012-05-15T17:13:19.610 回答