C#中的高精度计时器用于同步对象超时

时间:2013-04-23 10:46:02

标签: c# .net windows timer

我有类似以下代码的内容:

public void acquireReaderLock(int nmsMaxWait)
{
    //'nmsMaxWait' = timeout in milliseconds

    if(_mutex.WaitOne(nmsMaxWait))
    {
        //Need time left for the second wait?
        if(_semaphore.WaitOne(???)
        {
        }
        else
            throw new Exception("Timed out");
    }
    else
        throw new Exception("Timed out");
}

我正在寻找一种高精度计时器。在C ++中,我会使用GetTickCountGetSystemTimeAsFileTime API来衡量经过的时间,但我应该在C#中使用什么?

1 个答案:

答案 0 :(得分:4)

您可能会考虑在CLR中使用StopWatch最精确的计时类,我们通常在代码执行测量中使用它。

但是还有其他时序选项,例如:System.Timers.Timer类,也可以使用。

正如@Matthew Watson提到的那样,还有另一种选择:使用Environment.TickCount