倒计时器在C#中倒计时

时间:2013-09-07 22:19:24

标签: c# timer countdown

我需要在C#中使用倒计时器。有人可以帮我创建一个。要求是:

Set Timer = 5 minutes;

for (i=0;i<100;i++)
{  
     RunfunctionA();

    if(TimeLeft==0)
        RunfunctionB();
}

迭代继续运行;只是当timeleft == 0时,应该执行RunFunctionB()。

1 个答案:

答案 0 :(得分:1)

听起来好像你只需要一个简单的StopWatch

var sw = new StopWatch();
var maxTime = TimeSpan.FromMinutes(5);
sw.Start();
for (int i=0; i < 100; i++)
{  
    RunfunctionA();

    if(sw.Elapsed <= maxTime)
    {
        RunfunctionB();
        break;
    }
}

如果你想倒计时评论,我只计算剩余时间:

TimeSpan remaining = maxTime - sw.Elapsed;

修改:根据您的评论,如果时间过去,您希望停止在RunFunctionA中启动的流程,您可以尝试以下方法:

private Stopwatch ProcTimer = new Stopwatch();
private TimeSpan MaxTime = TimeSpan.FromMinutes(5);

private TimeSpan Remaining { get { return MaxTime - ProcTimer.Elapsed; } }

private void RunfunctionA()
{
    using (var proc = new System.Diagnostics.Process())
    {
        // initialization
        proc.Start();
        proc.WaitForExit((int)Remaining.TotalMilliseconds);
        if (proc.HasExited)
            ;// ...
        else
            proc.Kill();
    }
}

这是循环:

ProcTimer.Restart();
for (int i = 0; i < 100; i++)
{
    RunfunctionA();

    if (Remaining <= TimeSpan.Zero)
    {
        RunfunctionB();
        break;
    }
}