需要一个 时刻检查时间,当时间等于我给定的时间的时候 就发邮件。
现在发邮件的环节已经做好了,关于怎么在我需要的时间发的问题上, 大家有什么建议没有?我的想法是建立一个window service ,service里面while(true) 不停的检查时间,这样貌似很浪费资源。

解决方案 »

  1.   

    你可以考虑使用windows的计划任务来做,当到达某个时间点来执行你的程序。另外可以用你说的时间点检查,如果觉得耗费资源,可以先判断与你需要的时间点的间隔,根据间隔设定检查的间隔,比如相差3456秒,那么你就等待3451秒后,之后每隔1秒来精确检查。
      

  2.   

    可以先判断还间隔的时间            int interval = 0;
                //执行时间
                DateTime dtExTime = DateTime.Now.AddHours(1);
                bool ret = false;
                while (true) {
                    //to do 
                    //ret = CatchWeb();
                    if (ret) {
                        interval = (int)Math.Round((dtExTime - DateTime.Now).TotalMilliseconds);
                        System.Threading.Thread.Sleep(interval);
                    }
                    else
                        System.Threading.Thread.Sleep(interval / (4 * 60));
                }
      

  3.   

    在这儿混了这么久,不知道有两种Timer可以用吗?
      

  4.   

    因为白天 要求的时间间隔较短, 到了晚上该程序可以不工作。
    用Timer ? 在想想
      

  5.   

    可以用定时器,设置时间是算时间差,定时触发
    也可以用你说的服务,查询设置--算时间差--SLEEP(时间差)
    这样就不浪费资源了
      

  6.   

    Timer不是一个好选择,用windows的计划任务来做了