使我的整数每秒上升1

时间:2017-11-13 05:34:02

标签: c#

我对c#非常陌生,我想知道如何制作一个使用整数来计数的基本计时器。到目前为止我只有

int timer = 0;
int max = 10000;

        while ( timer < max )
        {
          timer += 1;

        }

我假设这会自动将定时器直接升至1000,因为没有速度设定。我想知道如何设定速度。谢谢。

4 个答案:

答案 0 :(得分:2)

有多种选择:

第一个是来自资源点的低效的,因为它阻止了调用线程。

第二个实际上在内部使用第三个,用于TAP代码。

还有:

  • System.Timers.Timer,但您应该避免使用它,因为它是IComponent API包装器System.Threading.Timer而只是在您的代码中添加了一些IComponent特定的垃圾箱;
  • UI框架计时器,如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();
}