我需要在我的过程中显示时间,在这种情况下我以00:00:00的格式显示,所以,问题是当过程结束时,我该如何停止计时器。
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
bool flag = true;
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
bool flag = true;
while (flag == true)
{
TimeSpan timeSpan = TimeSpan.FromSeconds(Convert.ToInt32(stopwatch.Elapsed.TotalSeconds));
Console.Write(timeSpan.ToString("c"));
Console.Write('\r');
//HERE IS MY PROCESS
//flag = false;
}
答案 0 :(得分:1)
在while循环之后,添加
stopwatch.Stop();
答案 1 :(得分:1)
试试这个:
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
bool flag = true;
while (flag == true)
{
stopWatch.Stop();
Console.Write(stopWatch.ElapsedMilliseconds + "ms");
Console.Write('\r');
stopWatch.Start();
//HERE IS MY PROCESS
//flag = false;
}
stopWatch.Stop();
}
您也可以根据需要设置时间格式,现在已经有毫秒=)
答案 2 :(得分:0)
您可能需要从另一个线程调用stopwatch.Stop()。秒表需要从两者都可以访问,你可能需要在它们之间提供锁定。
答案 3 :(得分:0)
您不必将其关闭。让GC回收内存 尝试任何类型的停止或关闭都会产生更多的工作而不是放弃它。
后台没有进行任何处理,所有工作都是在使用Stopwatch
方法和属性时完成的。这是因为Stopwatch
没有自己的计数器,它通过读取OS系统范围的时钟两次并减去。