是否有一種方法可以在C#中以高分辨率頻率執行方法,例如,每100微秒?每0.1毫秒和0.3毫秒重複兩個任務(Systems.Timer.Timer不夠精確)
關於不同頻率的兩種不同方法,例如, Method1每0.1 ms和Method2 0.3 ms?
MSDN有一個事件處理程序連接到Systems.Timers.Timer
類這樣的文件:
public static void Main()
{
System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(Method);
aTimer.Interval = 2000;
aTimer.Enabled = true;
GC.KeepAlive(aTimer);
}
但System.Timers.Timer
只有當我爲基準它有15〜16 ms的精度。我的CPU性能計數器的精度爲0.1毫秒以下,但我找不到將事件處理程序附加到Stopwatch
類的方法。
另外,是否有一些線程問題,我需要知道當我在不同的頻率執行兩種方法?
謝謝!
如果您需要這種精度,您應該查看帶有實時操作系統的系統。 http://en.wikipedia.org/wiki/Real-time_operating_system – tvanfosson
我同意@tvanfosson,像這樣的時間段,你很可能會受到多任務影響 –
@tvanfosson:感謝您的建議。出於開發時間的原因,我必須在.NET中工作。我讀過RTOS'es,但我希望在C#中有一個臨時解決方法。我發現不在我的控制範圍內的唯一部分是GC每隔幾分鐘就凍結我的應用程序<10 ms,這仍然是可以忍受的。 – elleciel