为计时器间隔分配一个双精度值

Qut*_*iba 1 c# double int types timer

我试图为计时器间隔分配大量(毫秒),但我在“timer.Enabled = true”行上发生了崩溃!

例外说:

mscorlib.dll 中发生“System.ArgumentOutOfRangeException”类型的未处理异常

附加信息:数字必须为非负且小于或等于 Int32.MaxValue 或 -1。

这是我的代码:

    CurrencyTimer.Interval = 2626086891.0;
    CurrencyTimer.Enabled = true;
    CurrencyTimer.AutoReset = true;
    CurrencyTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerWorker);
    CurrencyTimer.Start();
Run Code Online (Sandbox Code Playgroud)

异常指向这一行:CurrencyTimer.Enabled = true; 谢谢,

Joe*_*oey 5

异常(和文档)非常清楚地表明间隔必须在 0 和 之间int.MaxValue。因此,不要指定大于该值的值。

对于很长的计时器间隔,您可能必须将间隔分成较短的间隔并自己计数。我还很好奇为什么你认为你需要 30 天的计时器间隔......

  • 但间隔类型是 double ! (2认同)
  • @Qutaiba哦好吧,然后看看这个http://stackoverflow.com/questions/11610611/why-is-the-data-type-of-system-timers-timer-interval-a-double (2认同)