Windows上可靠的短时跨度测量

时间:2015-04-20 07:36:39

标签: c# windows cross-platform multicore time-measurement

我需要提供" Ticks "因为许多文章与其他人在Windows中如何实现这一点相矛盾,我已经完全缓解了10毫秒的时间。

我已经完成了第一步 - 使用 MultiMedia计时器提供1 mili的睡眠。

有没有办法确保睡眠代码适用于所有机器IsHighResolution是真还是假,单处理器系统还是多处理器系统等?

[编辑] 上一个问题在多核系统中使用StopWatch来解决问题: Multicore and thread aware .Net stopwatch? [/编辑]

1 个答案:

答案 0 :(得分:0)

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

    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;
        }
    }
  }

但我认为这是一个非常难看的解决方案......