如何在C#中获得实时时钟?

如何在C#中获得实时时钟?,c#,C#,我想要一个精确到微秒的实时时钟我怎么能做到 除秒表外,是否有其他实时时钟 可以精确到微秒的时间间隔(取决于硬件限制)。在.NET中可用的最精确的计时器是。请检查此项 并检查此项以获得高分辨率测量,您可以使用以下功能: class Program { [DllImport("kernel32.dll")] private static extern void QueryPerformanceCounter(ref long ticks); static void Main

我想要一个精确到微秒的实时时钟我怎么能做到


除秒表外,是否有其他实时时钟

可以精确到微秒的时间间隔(取决于硬件限制)。在.NET中可用的最精确的计时器是。

请检查此项
并检查此项

以获得高分辨率测量,您可以使用以下功能:

class Program
{
    [DllImport("kernel32.dll")]
    private static extern void QueryPerformanceCounter(ref long ticks);

    static void Main()
    {
        long startTicks = 0L;
        QueryPerformanceCounter(ref startTicks);

        // some task

        long endTicks = 0L;
        QueryPerformanceCounter(ref endTicks);
        long res = endTicks - startTicks;
    }
}
使用和Windows API。分辨率不是机器的标准分辨率,但通常是微秒级(有关更多信息,请参阅)


在Vista/Win7中,还有和,它将为进程/线程提供经过的周期数。如果您只想知道流程的活动时间(例如,您未被关闭的时间),这将非常有用。

如果您想进行良好的时间测量,我认为csharp作为一种高级语言可能不是一个好主意。您可以组装一个简单的程序,点击RTC,然后通过库将其绑定到您的程序。这确实是在没有对象悬垂的情况下可能得到的最佳方案,但它需要一些低层次的知识来组合。

如果您没有互联网接入,并且您想要软件定时试用许可证的实时性,那么您可以使用带实时时钟的USB加密狗

其时间计算由电池驱动的内部时钟驱动。您可以使用这些类型的加密狗附带的API函数从USB加密狗访问时间


为什么是“秒表以外的”?这难道不像是在问“我想存储一个字符串。是否有字符串以外的字符串类型?”这可能与System.Diagnostics.Stopwatch.Chris中的功能相同。秒表在封盖下使用内核32
QueryPerformanceCounter
,因此没有理由使用此代码(在使用.NET 2.0或更高版本时)。这段代码对于那些仍在使用.NET1.1的可怜人来说仍然很有用。