C# 中的倒数计时器
本文关键字:计时器 倒数 | 更新日期: 2023-09-27 18:30:29
我需要C#中的倒数计时器。有人可以帮我创建一个吗?要求是:
Set Timer = 5 minutes;
for (i=0;i<100;i++)
{
RunfunctionA();
if(TimeLeft==0)
RunfunctionB();
}
迭代继续运行;只是当 timeleft==0 时,应该执行 RunFunctionB()。
这
听起来好像你只需要一个简单的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;
}
}