Jes*_*sen 5 .net c# visual-studio-2012
可能的重复:
C# DateTime.Now 精度
关于 .NET 中的高分辨率计时,有一些关于 SO 的问题,其中声明(如 MSDN 文档中所述)DateTime.Ticks 的结果为 100 纳秒。
但在现实生活中似乎完全不是这样。如果我运行下面的代码,我希望它生成行,其中每一行的 Tick 值都不同,其中很多行具有相同的毫秒值。但事实并非如此 - 滴答值保持不变,直到下一次毫秒值的变化,不会增加时间戳的分辨率。
private static List<string> GetTimeLine(long iterations)
{
List<string> liste = new List<string>();
for (long i = 0; i <= iterations; i++)
{
liste.Add(DateTime.Now.Millisecond.ToString() + " - " + DateTime.Now.Ticks.ToString());
}
return liste;
}
static void Main(string[] args)
{
Console.WriteLine("Generating timeline");
guids = GetTimeLine(10000);
File.WriteAllLines(@"C:\Test\GUIDS.TXT", guids);
Console.WriteLine("File written - Press ENTER");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
结果输出示例:
...
867 - 634940160118679615867 - 634940160118679615
867 - 634940160118679615
867 - 634940160118679615
867 - 634940160118679615
868 - 634940160118689616
868 - 634940160118689616
868 - 634940160118689616
...
那么在.NET 中获得超过毫秒分辨率的方法是什么?
在 C# 中测量经过时间的最准确方法是使用Stopwatch类。
这使用微处理器的性能计数器,通过调用QueryPerformanceCounter 实现。
| 归档时间: |
|
| 查看次数: |
8061 次 |
| 最近记录: |