Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c中的TimeSpan totalseconds出现问题#_C#_.net_Datetime_Timespan_Datetimeoffset - Fatal编程技术网

C# c中的TimeSpan totalseconds出现问题#

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

我有一个代码块,它必须计算代码执行的持续时间。通过Dispatchermer每秒调用块的方法

从照片中可以看到,4.totalseconds约为0,但(DateTimeOffset.Now-now2)的持续时间约为1秒

//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每秒调用它