我现在使用timer控件设置每隔30天自动运行一下,但是timer设置Interval为2592000000(也就是30天)的时候说超出int32范围了,请问该如何解决

解决方案 »

  1.   

    晕~30天就不要用timer控件了~~不可预料的情况太多了!!!程序一结束~~计时就没了!!你根本预料不到30天里程序会不会被意外终止!!建议把起始时间保存在一个固定位置,比如说配置文件,或者注册表什么的!!然后在程序里进行定时检测这个时间是否和当前时间相差30天!!比如说在程序里每分钟检测比较一次!!
      

  2.   

    可以变通一下
    记录当前timer执行的时间,每隔1个小时运行一下,判断时间是否是上次运行时间+30天,如果是就运行。
      

  3.   

    如果这个程序只有一个任务去执行,建议做成windows计划任务啊
      

  4.   

    关于C#中timer类  在C#里关于定时器类就有3个  
          1.定义在System.Windows.Forms里  
          2.定义在System.Threading.Timer类里  
          3.定义在System.Timers.Timer类里       System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console  Application(控制台应用程序)无法使用。   
          System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET  Thread  Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。例:
    使用System.Timers.Timer类
    System.Timers.Timer t = new System.Timers.Timer();//实例化Timer类
    t.Interval = 2592000000;//t.Interval为double类型
    t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
    t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
    t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
      

  5.   

    你不是30天运行一次吗,那就先设定30天后的日期,然后加个判断在启动timer控件不就行了