当实际经过的时间以分钟为单位时,为什么秒显示的值很小?
c#
我在带有 StopWatch 的控制台应用程序中有一个并行循环。
如果我输入 10000 个循环,它会说它在 13 秒内完成,但在现实世界中,控制台直到 15 分钟后才会停止打印。那么我如何正确计时这个循环,以便秒表在最后一行完成写入控制台后停止?我的预期结果是“过程花了 903 秒”
int i = 0;
int N = 10000;
Stopwatch sw = new StopWatch();
sw.Start
Parallel.For(0, N, i =>
{
//Do some logic task here then write to the console
console.Writeline("Thread " + i + " has finished");
});
sw.Stop()
console.WriteLine("Process took" + sw.Elapsed.Seconds + " Seconds");
是否类似于C# Timespan Milliseconds vs TotalMilliseconds,其中使用毫秒而不是 TotalMilliseconds?
回答
从TimeSpan.Seconds财产的文件:
public int Seconds { get; }
获取由当前 TimeSpan 结构表示的时间间隔的秒部分。
所以Seconds返回一个 0 - 59 之间的值。要获得TimeSpan以秒为单位的总持续时间,您需要查询TimeSpan.TotalSeconds属性:
public double TotalSeconds { get; }
获取以整数秒和小数秒表示的当前 TimeSpan 结构的值。