当前位置:编程学习 > C#/ASP.NET >>

谁能帮我解决system.timers.timer重复执行事件的问题

       protected static System.Timers.Timer tqtimer = new System.Timers.Timer();  //设置定时器
 protected static Njgdd.kernel.weather weather1 = new Njgdd.kernel.weather();
  void Application_Start(object sender, EventArgs e)
    {
int hours = DateTime.Now.TimeOfDay.Hours;//首先获取当前的时间
       if (hours > 6)
        {
            tqtimer. = (new TimeSpan(TimeSpan.FromHours(31).Ticks - DateTime.Now.TimeOfDay.Ticks).TotalMilliseconds) + TimeSpan.FromMinutes(2).TotalMilliseconds ;

        }
        else
        {
            tqtimer.Interval = (new TimeSpan(TimeSpan.FromHours(7).Ticks -DateTime.Now.TimeOfDay.Ticks).TotalMilliseconds)+ TimeSpan.FromMinutes(2).TotalMilliseconds;
        }//上在则设置到每天七点零2分启动
                 
        tqtimer.Enabled = true;
        tqtimer.AutoReset = true;
        tqtimer.Elapsed += new System.Timers.ElapsedEventHandler(tqtimer_Elapsed);


    //执行天气预报录入到短信平台
    static void tqtimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        tqtimer.Enabled = false;
        weather1.tqyb();//
        tqtimer.Interval = TimeSpan.FromDays(1).TotalMilliseconds;//1天后重启运行
        tqtimer.Enabled = true;
    }
}

放在global里面的,但是每次好象都重复执行weather1.tqyb(),这个方法是将天气预报的人员分组循环添加到短信待发表中去,但收到短信都是重复的两条。我在自己电脑上调试没问题,但是在IIS+win2003上运行就是要运行两次,好郁闷,这样领导每天就要收到两条天气预报。我保证weather1.tqyb方法肯定正确,因为在自己机子上通过了。

是不是system.timers.timer有什么问题啊,还有如果用system.Threading.timer可不可以设置多个timer啊,如每天七点提醒天气预报,每天四点提醒明天值班人员!

受不了了,整了两天发现不了问题,是不是什么线程什么的就会让tqtimer_Elapsed执行两次啊,感谢各位了! --------------------编程问答-------------------- weather1.tqyb();
这个方法中是不是姓名没有清空,
里面的姓名都重复了两次。 --------------------编程问答-------------------- 帮帮忙啊 --------------------编程问答-------------------- 谁能帮忙啊 --------------------编程问答-------------------- 拜托 --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- to:webhaitao ;不可能,自己设置的程序,循环从数据库读书名字.

我还是觉得什么线程进程之类不能同步,反正也搞不清

现在改用windows服务写,反现好了,程序都没变,还是不能相信IIS底下的运行的timer, --------------------编程问答-------------------- 你的ASP.NET Application是不是自动重启了? --------------------编程问答-------------------- 不会啊,再怎么重新也是那个点触发,触发的时候感觉就会触发了两次 --------------------编程问答-------------------- 倒地不起,用了windows服务好了两点又重复发送,晕啊,哪位高手说说看怎么回事啊 --------------------编程问答-------------------- 直接问专家得了!!! --------------------编程问答-------------------- 哪位专家帮帮忙,感恩啊!我觉得也不是一个弱智的问题了 --------------------编程问答-------------------- up --------------------编程问答-------------------- 顶一下吧 --------------------编程问答-------------------- 大家帮个忙或者指点一下怎样重新设计 --------------------编程问答-------------------- 嗯 看看 --------------------编程问答-------------------- 这个好象是定时采集天气预报的程序,来我告诉你一个更好的办法,利用系统中的“计划任务”建一个作业,指定在某个时间执行你写的采集程序,每天执行一次,如果一次不够,可根据需要自己设定,这样一个准确,一个是自己不用开发调试定时程序,省事,又好用。 --------------------编程问答-------------------- to light999,这算一个办法,能让我稍微不错,我想的还是在数据库中加一个字段,已标识是否取得天气预报并发送了,这样即使N重复也没关系了!

不过这个问题让人难受 --------------------编程问答-------------------- 我有一个短信待发表,需要时时发送,那就是每二秒检查数据库. 

然后我有一个值班提醒,需要每天四点获取发送短信给值班人员 

然后我有一个天气预报提醒,需要每天早上七点发送给领导 

然后我有一个天气预报更新,需要每三小时更新一次

我用了四个timer,是否有人有更好的设计! --------------------编程问答-------------------- ...... --------------------编程问答-------------------- ....
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,