我正在使用while循环,我希望在使用秒表5分钟后停止循环
while (loop)
{
if (Name == null)
{
CheckName = false;
break;
}
else if()//i want to add Stopwatch here
{
}
//if Stopwatch finished
//do something
}
我想循环,然后在一段时间后完成循环以做其他事情
答案 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();