我对c#非常陌生,我想知道如何制作一个使用整数来计数的基本计时器。到目前为止我只有
int timer = 0;
int max = 10000;
while ( timer < max )
{
timer += 1;
}
我假设这会自动将定时器直接升至1000,因为没有速度设定。我想知道如何设定速度。谢谢。
答案 0 :(得分:2)
有多种选择:
while
+ Thread.Sleep
while
+ Task.Delay
System.Threading.Timer
第一个是来自资源点的低效的,因为它阻止了调用线程。
第二个实际上在内部使用第三个,用于TAP代码。
还有:
System.Timers.Timer
,但您应该避免使用它,因为它是IComponent
API包装器System.Threading.Timer
而只是在您的代码中添加了一些IComponent
特定的垃圾箱; DispatcherTimer
,但它们不是通用计时器,必须与特定的UI框架一起使用。答案 1 :(得分:1)
您可以在while循环中使用Thread.Sleep(waitTime)
。例如,如果将等待时间设置为30秒,则计数器将每30秒递增一次。
while ( timer < max )
{
// Wait for 30 seconds (since the argument is in milliseconds)
Thread.Sleep(30 * 1000);
timer += 1;
}
答案 2 :(得分:1)
您可以使用System.Threading.Thread.Sleep(1000);但整个系统正在停止。另一种解决方案是计时Timer = new Timer();
int timer = 0;
int max = 10000;
while ( timer < max )
{
timer += 1;
System.Threading.Thread.Sleep(1000);
}
答案 3 :(得分:1)
您可以尝试使用C#Timer
int _counter = 0;
Timer timer;
timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += new EventHandler(TimerEventProcessor);
timer.Start();
private void TimerEventProcessor(object sender, ElapsedEventArgs e)
{
_counter += 1;
if(counter == 1000)
timer.Stop();
}