相关疑难解决方法(0)

DateTime.Now多久更新一次?或者是否有更精确的API来获取当前时间?

我有一个循环运行的代码,它根据当前时间保存状态.有时这可能只相差几毫秒,但由于某些原因,似乎DateTime.Now将始终返回至少10 ms的值,即使它仅在2或3 ms之后.这是一个主要问题,因为我保存的状态取决于它保存的时间(例如录制内容)

我的测试代码返回10 ms的每个值:

public static void Main()
{
    var dt1 = DateTime.Now;
    System.Threading.Thread.Sleep(2);
    var dt2 = DateTime.Now;

    // On my machine the values will be at least 10 ms apart
    Console.WriteLine("First: {0}, Second: {1}", dt1.Millisecond, dt2.Millisecond);
}
Run Code Online (Sandbox Code Playgroud)

是否有另一种解决方案可以获得精确的当前时间到毫秒?

有人建议看秒表类.虽然秒表类是非常准确的,但它并没有告诉我当前的时间,我需要的东西是为了保存程序的状态.

.net c# datetime real-time

25
推荐指数
3
解决办法
1万
查看次数

Thread.Sleep()确保DateTime.Now不同的最短时间是多少?

Thread.Sleep()确保DateTime.Now不同的最短时间是多少?

鉴于DateTime具有Ticks属性,您可以认为以下内容就足够了:

Thread.Sleep(TimeSpan.FromTicks(1));
Run Code Online (Sandbox Code Playgroud)

这样可以,但是这可以保证后续调用DateTime.Now不相等?

更新:出现DateTime精度是硬件相关的,所以我将使用以下方法:

public static void SleepUntilDateTimeChanges()
    {
        DateTime now = DateTime.Now;
        while(now == DateTime.Now)
            Thread.Sleep(TimeSpan.FromMilliseconds(1));
    }
Run Code Online (Sandbox Code Playgroud)

c# datetime

3
推荐指数
1
解决办法
2877
查看次数

标签 统计

c# ×2

datetime ×2

.net ×1

real-time ×1