如何在循环中添加秒表

时间:2016-09-14 05:43:06

标签: c#

我正在使用while循环,我希望在使用秒表5分钟后停止循环

while (loop)
{
 if (Name == null)
 {
  CheckName = false;
  break;
 }
 else if()//i want to add Stopwatch here
 {
 }
//if Stopwatch finished 
//do something
}

我想循环,然后在一段时间后完成循环以做其他事情

2 个答案:

答案 0 :(得分:5)

经典的方式是:

Stopwatch sw = new Stopwatch();
sw.Start();
while (true)
{ 
    if (Name == null)
    {
       CheckName = false;
       break;
    }
    else if(sw.Elapsed.TotalMinutes >= 5)
    {
       // do something
       // break;
    }
}
sw.Stop();

另一种方式是:

var cancellation = new CancellationTokenSource(TimeSpan.FromMinutes(5));
....
else if(cancellation.IsCancellationRequested)
{
    // do something
}

我强烈建议您使用Task在后​​台线程中执行此操作。运行5分钟的方法将冻结UI(如果有的话)。

答案 1 :(得分:2)

以下是使用System.Diagnostics.StopWatch

执行此操作的方法
System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
while (sw.Elapsed <= TimeSpan.FromMinutes(5))
{
    if (Name == null)
    {
        CheckName = false;
        break;
    }
}

sw.Stop();