我想要得到最準確的(1ms精度將是非常好的)時間。 我看到這個例子是使用GetLocalTime:GetLocalTime,Kernel32.dll,windows 7的準確性是什麼?
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public class SystemTime
{
public ushort year;
public ushort month;
public ushort weekday;
public ushort day;
public ushort hour;
public ushort minute;
public ushort second;
public ushort millisecond;
}
public class LibWrap
{
[DllImport("Kernel32.dll")]
public static extern void GetLocalTime([In, Out] SystemTime st);
}
public class App
{
public static void Main()
{
SystemTime st = new SystemTime();
LibWrap.GetLocalTime(st);
Console.Write("{0}:{1}:{2}.{3}", st.hour, st.minute, st.second, st.millisecond);
Console.ReadKey();
}
}
多少是準確的?
爲什麼不使用'DateTime.Now'屬性? – 2012-02-20 20:24:09
這是不準確的15ms – remi 2012-02-20 20:24:44
你需要特殊的硬件來獲得準確的絕對時鐘。通常基於GPS接收器。它仍然只對驅動程序有用,Windows在用戶模式下並不完全是實時操作系統,線程量是45毫秒。標準時鍾分辨率是1/64秒,因爲使它更加準確是毫無意義的。 – 2012-02-20 20:37:14