如何在指定时间内执行特定循环
Timeinsecond = 600
int time = 0;
while (Timeinsecond > time)
{
// do something here
}
Run Code Online (Sandbox Code Playgroud)
如何在这里设置时间变量,如果我可以使用Timer对象的启动和停止方法,它不会在几秒钟内返回时间
关心NewDev
sTo*_*rov 57
可能以下将有所帮助:
Stopwatch s = new Stopwatch();
s.Start();
while (s.Elapsed < TimeSpan.FromSeconds(600))
{
//
}
s.Stop();
Run Code Online (Sandbox Code Playgroud)
Mer*_*ham 24
如果你想要易用性:
如果您没有很高的精度要求(真正的毫秒级精度 - 例如每秒写高帧数视频游戏,或类似的实时模拟),那么您可以简单地使用以下System.DateTime结构:
// Could use DateTime.Now, but we don't care about time zones - just elapsed time
// Also, UtcNow has slightly better performance
var startTime = DateTime.UtcNow;
while(DateTime.UtcNow - startTime < TimeSpan.FromMinutes(10))
{
// Execute your loop here...
}
Run Code Online (Sandbox Code Playgroud)
更改TimeSpan.FromMinutes为您需要的任何时间段,秒,分钟等.
如果调用类似Web服务的东西,在短时间内向用户显示内容,或者检查磁盘上的文件,我会专门使用它.
如果您想要更高的准确度:
看看Stopwatch班级,并检查Elapsed会员.它稍微难以使用,因为你必须启动它,并且它有一些错误会导致它有时变为负数,但是如果你需要真正的毫秒级精度则它很有用.
要使用它:
var stopwatch = new Stopwatch();
stopwatch.Start();
while(stopwatch.Elapsed < TimeSpan.FromSeconds(5))
{
// Execute your loop here...
}
Run Code Online (Sandbox Code Playgroud)