C# c中的TimeSpan totalseconds出现问题#
我有一个代码块,它必须计算代码执行的持续时间。通过Dispatchermer每秒调用块的方法 从照片中可以看到,4.totalseconds约为0,但(DateTimeOffset.Now-now2)的持续时间约为1秒C# c中的TimeSpan totalseconds出现问题#,c#,.net,datetime,timespan,datetimeoffset,C#,.net,Datetime,Timespan,Datetimeoffset,我有一个代码块,它必须计算代码执行的持续时间。通过Dispatchermer每秒调用块的方法 从照片中可以看到,4.totalseconds约为0,但(DateTimeOffset.Now-now2)的持续时间约为1秒 //some code here span4 = DateTimeOffset.Now - now2; someInfo.Text = (DateTimeOffset.Now - now2).TotalSeconds.ToString(); now2 = DateTimeOff
//some code here
span4 = DateTimeOffset.Now - now2;
someInfo.Text = (DateTimeOffset.Now - now2).TotalSeconds.ToString();
now2 = DateTimeOffset.Now;
因为DateTimeOffset.Now每次调用时都会有一个不同的值。。。为什么要做两次相同的减法?试试看:
span4 = DateTimeOffset.Now - now2;
someInfo.Text = (span4).TotalSeconds.ToString();
now2 = DateTimeOffset.Now;
因为DateTimeOffset.Now每次调用时都会有一个不同的值。。。为什么要做两次相同的减法?试试看:
span4 = DateTimeOffset.Now - now2;
someInfo.Text = (span4).TotalSeconds.ToString();
now2 = DateTimeOffset.Now;
在.Net中测量执行时间的方法是使用秒表类:
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
在.Net中测量执行时间的方法是使用秒表类:
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
为了测量代码执行时间,我会使用StopWatch类,但可能我误解了您的问题
DateTimeOffset.Now
实际上是指现在。你得到的是估价时的时间。第二个now可以很容易地在第一个now之后的1秒调用debugging@Steve我需要的不是确切的执行时间,而是通过Timer.Tick调用不同方法之间的时间。@Panagiotis所有手表都是几分钟前添加的。breackpoint在最后一行,所以当它执行时我没有调试。now2在以前调用该方法时设置得更早,目的是了解上次调用和当前调用之间经过了多少时间。要测量代码执行时间,我会使用StopWatch类,但可能我误解了您的问题DateTimeOffset。Now
实际上是指Now。你得到的是估价时的时间。第二个now可以很容易地在第一个now之后的1秒调用debugging@Steve我需要的不是确切的执行时间,而是通过Timer.Tick调用不同方法之间的时间。@Panagiotis所有手表都是几分钟前添加的。breackpoint在最后一行,所以当它执行时我没有调试。now2在以前调用该方法时设置得更早,目的是了解上次调用和当前调用之间经过了多少时间。True,但不解释OP的问题。我很确定同样的问题(一秒钟的差异)也会发生在秒表上。没错,但这并不能解释OP的问题。我很确定秒表也会出现同样的问题(1秒差异)。问题是span4.totalseconds等于0,但如果我观看(DateTimeOffset.Now-now2)。totalseconds大约等于1秒。正确的值是1秒?虽然正确的值取决于您调用它的时刻,但该值会每秒钟更改一次我通过Dispatcher每秒调用一次问题是span4.totalseconds等于0,但如果我观看(DateTimeOffset.Now-now2).totalseconds它大约等于1秒。正确的值是1秒?但是,正确的值将取决于您调用它的时刻,该值将每秒更改我通过Dispatchermer每秒调用它