我需要每0.03125秒发生一次事件
Timer
控件只能达到0.031 s
如何从Stopwatch
组件创建更准确的事件?
答案 0 :(得分:3)
我发现这一点,它比标准计时器更加准确可靠!我不敢相信。
http://www.codeproject.com/Articles/5501/The-Multimedia-Timer-for-the-NET-Framework
引用: Win32多媒体定时器服务提供最大程度的定时准确性。它们允许您以比其他计时器服务更高的分辨率安排计时事件。这在多媒体应用中非常有用,其中定时精度是最重要的。例如,MIDI应用程序需要尽可能精细的计时事件。
不幸的是,Win32多媒体计时器不是.NET Framework的一部分。但是,通过使用.NET互操作性服务,多媒体计时器可以进入.NET折叠。
答案 1 :(得分:2)
Windows不是实时操作系统 - 因此您无法获得在特定时间后执行方法的保证。
你可以做的最好的事情是经常等待检查时间(可能是使用秒表)。
您也可以使用分辨率更高的多媒体计时器...(搜索查询 - c# multimedia timers,即Getting accurate ticks from a timer in C#)
答案 2 :(得分:2)
一般来说,定时器只能在15毫秒内准确到达,即使这样,也往往会出现准确性问题,因为它们通常会被抢先一步。
如果计时器的精度指定在四分之一毫秒范围内,则需要一个实时操作系统,无论使用哪个计时器,都可能无法正常工作。
答案 3 :(得分:2)
'我需要每隔0.03125 s发生一次事件 - 为了可靠地实现这种精度,请使用专用的微控制器。
您无法在桌面操作系统上实现您所需的功能。
答案 4 :(得分:1)
高优先级线程和循环与chek秒表时间或更准确的计数器怎么样?