我正在使用秒表,我想估计从开始到结束需要多长时间。
它看起来很简单。我实例化了秒表,启动它,然后停止它,然后编写一个方法。经过它应该为我提供从开始到停止所花费的时间。
不幸的是,它总是为我提供00:00:00。
我必须在我的PC上设置特定于我的文化的东西吗?
我也尝试过.StartNew(),但无济于事。
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
string juniorDevOpsFolder = "JuniorDevOps";
string targetPath = Directory.GetCurrentDirectory();
int endIndex = targetPath.IndexOf(juniorDevOpsFolder);
var juniorDevOpsPath = targetPath.Substring(0, endIndex + juniorDevOpsFolder.Length);
string directory = "Files";
string targetDirectory = Path.Combine(juniorDevOpsPath, directory);
ProcessDirectory(targetDirectory);
stopwatch.Stop();
// Write hours, minutes and seconds.
Console.WriteLine("Time elapsed: {0:hh\\:mm\\:ss}", stopwatch.Elapsed);
同样,输出为00:00:00
您的程序执行不到一秒钟,因此格式化的stopwatch.Elapsed
正在将00:00:00打印到控制台。尝试使用stopwatch.ElapsedMilliseconds
而不是格式化的stopwatch.Elapsed
。
类似
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
//Your business logic
stopwatch.Stop();
Console.WriteLine($"Elapsed milliseconds : {stopwatch.ElapsedMilliseconds}" );
该代码怎么样:
var watch = new System.Diagnostics.Stopwatch();
watch.Start();
// do something what do you want
watch.Stop();
Console.WriteLine($"Execution Time: {watch.ElapsedMilliseconds} ms");
可能需要不到一秒钟的时间。尝试格式化几毫秒。
也许只是因为您的程序需要less不到一秒钟的时间来执行,所以为什么您得到零小时,零分钟和零秒?尝试无格式输出或ElapsesMilliseconds
属性