如何c#几个准确的计时器(确切地说是10毫秒间隔)

时间:2014-01-09 17:42:05

标签: c# .net visual-studio-2010 timer elapsedtime

我已经在C#(VS2010 .Net Fw 4.0)中启动了一个涉及多个计时器的桌面应用程序开发。

首先,我使用 System.Timers 来通过USB将数据发送到数据总线。我的观点是,我需要发送具有几个特定时间间隔的不同周期性二进制消息,例如10ms,20ms,40ms,100ms,500ms,1000ms ....

在每个计时器中,我都有一个回调函数,它必须为每个引发的事件发送正确的数据流。

问题是当我有全部信号工作时,实际间隔与预期不同(3000ms升至3500,100ms至340),因为当我将10ms添加到40ms定时器时,cpu几乎100%过载并且失去了所有的精力。

我在VMWare中使用2GB RAM和2CPU内核。主机是i7-2600K CPU @ 3,40GHz。我认为这不是问题。(但我认为)。

在我写这篇文章之前,我正在寻找一个关于如何使用最优化的资源消耗更精确地计时的答案。但我发现它都是无特异性的。

我已经知道 System.Diagnostics.Stopwatch 阅读它here但是这个类没有事件。另外 System.Windows.Forms.Timer 但更不精确,分辨率低。

有一个很好的实现here,具有微秒分辨率,但这是我超载CPU的原因!

您如何看待我的进一步措施!?我很感激你有任何帮助或想法

10%的时间分辨率是10ms间隔的目标!

我会澄清你需要的任何额外信息!

0 个答案:

没有答案