在Windows上可靠的短时间跨度测量

我需要的代码将提供10毫秒的“ ”准确,而且我看到许多文章中的一些与Windows中的如何完成这个相矛盾的问题。

我已经pipe理了第一步 – 使用MultiMedia定时器提供1毫林的睡眠。

有没有一种方法可以确保睡眠代码可以在所有机器上运行?IsHighResolution是真是假,单处理器系统还是多处理器系统等?

先前的问题在多核系统中使用StopWatch的问题: 多核和线程感知.Net秒表? [/编辑]

对不起,我不能写在评论中…如果你有可能使用第二个线程,你可以使用循环浪费时间…像这样:

class yourTimer{ public void startTimer(Action a) { ParameterizedThreadStart fu = new ParameterizedThreadStart(waiter); Thread t1 = new Thread(fu); t1.Start(a); } public void stopTimer() private void waiter(object o) { Action ac = (Action)o; while(waitin) { if(DateTime.Now.Millisecond%10==0) { ac.Invoke(); } continue; } } } 

但这是一个相当不好的解决方案,我认为…