如何在C#中运行循环一段时间?

时间:2011-09-23 05:24:32

标签: c# loops timer

  

可能重复:
  How to execute the loop for specific time

所以,我在C#中有一个无限循环,但问题是,我希望循环在某个时刻结束。不是基于计数或循环间隔,而是基于一段时间,因此一旦该时间段过去,循环结束。我该怎么办?

1 个答案:

答案 0 :(得分:1)

使用Timer或Thread来做到这一点。你可以轻松完成任务。

System.Threading.Timer Timer;
System.DateTime StopTime;
public void Run()
{
    StopTime = System.DateTime.Now.AddMinutes(10);
    Timer = new System.Threading.Timer(TimerCallback, null, 0, 5000);
}

private void TimerCallback(object state)
{
    if(System.DateTime.Now >= StopTime)
    {
            Timer.Dispose();
            return;
    }
    // do your work.....
}

检查其他解决方案:.NET, event every minute (on the minute). Is a timer the best option?

或 的修改

          DateTime dt = DateTime.Now.AddMinutes(10);

            for (; ; )
            {
                if (dt < DateTime.Now)
                    break;
            }