日期时间.Ticks没有100 ns的分辨率
本文关键字:ns 分辨率 没有 时间 Ticks 日期 | 更新日期: 2023-09-27 17:53:46
可能重复:
C#日期时间。现在精度
关于中的高分辨率定时,SO上有一些问题。NET中声明(如MSDN文档中所述(DateTime。Ticks的分辨率为100纳秒。
但现实生活中似乎根本不是这样。若我运行下面的代码,我希望它生成行,其中每行的Tick值都不同,其中许多行具有相同的Milisecond值。但事实并非如此——刻度值在毫秒值的下一次偏移之前保持不变,不会增加时间戳的分辨率。
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();
}
结果输出示例:
867-634940160118679615867-634940160118679615
867-634940160118679615
867-634940160118679615
867-634940160118679615
868-634940160118689616
868-634940160118689616
868-634940160118689616
那么,获得超过毫秒分辨率的方法是什么呢。NET?
在C#中测量运行时间的最准确方法是使用Stopwatch类。
这使用微处理器的性能计数器,通过调用QueryPerformanceCounter来实现。