我这个是三个timer 计划 你用一个就行了using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;namespace Mvc51Hiring.Timer
{
    public partial class Service1 : ServiceBase
    {
        System.Timers.Timer _mailTime = null;
        System.Timers.Timer _acquisitionCandidateInfoTime = null;
        System.Timers.Timer _messageTime = null;
        public Service1()
        {
            InitializeComponent();
        }        protected override void OnStart(string[] args)
        {
            try
            {
                MailStart(PubGet.MailTime);
                MessgeStart(PubGet.MailTime);
                AcquisitionCandidateInfoStart(PubGet.AcquisitionCandidateInfoTime);
            }
            catch (Exception)
            {
                _mailTime.Stop();
                _acquisitionCandidateInfoTime.Stop();
                _messageTime.Stop();
            }
        }
        protected override void OnStop()
        {
            if (_mailTime != null)
                _mailTime.Stop();
            if (_acquisitionCandidateInfoTime != null)
                _acquisitionCandidateInfoTime.Stop();
            if (_messageTime != null)
                _messageTime.Stop();
        }        #region 邮件
        /// <summary>
        /// 调用邮件服务
        /// </summary>
        /// <param name="second">邮件发送间隔时间(ss)</param>
        private void MailStart(int second)
        {            _mailTime = new System.Timers.Timer(second*1000);//实例化Timer类,设置间隔时间为10000毫秒;            _mailTime.Elapsed += StartMailMethods;//到达时间的时候执行事件;            _mailTime.AutoReset = true;//设置是执行一次(false)还是一直执行(true);            _mailTime.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;            _mailTime.Start();
        }
        public void StartMailMethods(object source, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                string url = (PubGet.MailDomain + "/EmailSend");
                var x = RequestHelper.GetPageSource(PubGet.MailRequestTime, url);            }
            catch (Exception ex)
            {
                ConfigHelper.ErrorLog("StartMailMethods", ex);
            }        }        #endregion
        #region 采集
        private void AcquisitionCandidateInfoStart(int second)
        {            _acquisitionCandidateInfoTime = new System.Timers.Timer(second*1000);//实例化Timer类,设置间隔时间为10000毫秒;            _acquisitionCandidateInfoTime.Elapsed += StartAcquisitionCandidateInfoMethods;//到达时间的时候执行事件;            _acquisitionCandidateInfoTime.AutoReset = true;//设置是执行一次(false)还是一直执行(true);            _acquisitionCandidateInfoTime.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;            _acquisitionCandidateInfoTime.Start();
        }
        public void StartAcquisitionCandidateInfoMethods(object source, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                string url = (PubGet.MailDomain + "/AcquisitionCandidateInfo/Index");
                var x = RequestHelper.GetPageSource(PubGet.AcquisitionCandidateInfoRequestTime, url);            }
            catch (Exception ex)
            {
                ConfigHelper.ErrorLog("StartAcquisitionCandidateInfoMethods", ex);
            }        }
        #endregion
        #region 短信
        /// <summary>
        /// 调用短信服务
        /// </summary>
        /// <param name="second">短信发送间隔时间(ss)</param>
        private void MessgeStart(int second)
        {            _messageTime = new System.Timers.Timer(second * 1000);//实例化Timer类,设置间隔时间为10000毫秒;            _messageTime.Elapsed += StartMessgeMethods;//到达时间的时候执行事件;            _messageTime.AutoReset = true;//设置是执行一次(false)还是一直执行(true);            _messageTime.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;            _messageTime.Start();
        }
        public void StartMessgeMethods(object source, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                string url = (PubGet.MailDomain + "/SMSSend");
                var x = RequestHelper.GetPageSource(PubGet.MailRequestTime, url);            }
            catch (Exception ex)
            {
                ConfigHelper.ErrorLog("StartMessgeMethods", ex);
            }        }        #endregion
    }
}

解决方案 »

  1.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?
      

  2.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?后台计时这种情况,你需要一直开网站或者项目才能执行,而写服务可以挂服务器上一直不停的执行。这就需要看你的项目需求了。
      

  3.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?页面能用来记时的话,母猪都能上树了,B/S的定义就是浏览器与服务器的关系,浏览器不存在了,关系还能继续吗?  所以必须做成服务在服务器上运行,就算没有浏览器也会继续工作
      

  4.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?后台计时这种情况,你需要一直开网站或者项目才能执行,而写服务可以挂服务器上一直不停的执行。这就需要看你的项目需求了。
    哦,谢谢了
      

  5.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?页面能用来记时的话,母猪都能上树了,B/S的定义就是浏览器与服务器的关系,浏览器不存在了,关系还能继续吗?  所以必须做成服务在服务器上运行,就算没有浏览器也会继续工作
    哦,差不多懂了
      

  6.   

    那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?那为什么不在后台页面记时呢?用服务和直接后台记时有什么优劣?页面能用来记时的话,母猪都能上树了,B/S的定义就是浏览器与服务器的关系,浏览器不存在了,关系还能继续吗?  所以必须做成服务在服务器上运行,就算没有浏览器也会继续工作
    有些操蛋的要求是游客在网站里浏览超过10分钟,就弹出提示注册窗口的怎么破?