public class TimerHelper
     {
         System.Threading.Timer timer;
         public TaskSendMMS tasksendmms { get; set; }
         public void Start()
         {
             timer = , );
             tasksendmms.timer = timer;
         }
     }
 public class TaskSendMMS
    {

        public Guid MMSId { get; set; }

        public Guid PhonePackageId { get; set; }

        public DateTime ExeTime { get; set; }

        private log log = new log();

        public System.Threading.Timer timer;

        public TaskSendMMS()
        {

        }
        public void Execute(object a)
        {
            try
            {
                log.writelog("=========================================开始执行计划========================================");
                string Extime = ExeTime.ToString("MM-dd HH:mm");
                string today = DateTime.Now.ToString("MM-dd HH:mm");
                if (today.Equals(Extime))//如果时间是执行时间,则执
                {
                    log.writelog("执行时间到了,时间为:" + today);
                    DataBase.DataClasses_MMSDataContext db = new DataBase.DataClasses_MMSDataContext();
                    var mms = db.MMS.Where(c => c.ID == this.MMSId).FirstOrDefault();
                    log.writelog("查询数据库MMS记录名称:" + mms.Title);
                    ) //如果该彩信 不是延迟发送的,直接退出.
                    {
                        log.writelog("该彩信不是延迟发送的,直接退出");
                        if (null != timer)
                        {
                            log.writelog("该彩信不是延迟发送的,直接退出 并关闭timer");
                            timer.Dispose();
                        }
                    }
                    else
                    {
                        log.writelog("执行时间到了,开始调用Web接口立即发送彩信.");
                        //发送彩信
                        Business.Start(this.MMSId.ToString(), this.PhonePackageId.ToString(), "");
                        log.writelog("调用接口成功,完成发送彩信.");
                        mms.State = ;
                        db.SubmitChanges();
                        log.writelog("彩信状态,修改为1");
                        if (null != timer)
                        {
                            log.writelog("全部完成 并关闭timer");
                            timer.Dispose();
                        }
                    }
                }
                else
                {
                    log.writelog("执行时间未到! 时间为: " + today);
                }
            }
            catch (Exception ee)
            {
                log.writelog("出现异常信息:" + ee.Message);
            }
            log.writelog("=========================================结束执行计划========================================");
        }
    }
 /// <summary>
         /// 启动执行计划
         /// </summary>
         /// <param name="MmsId"></param>
         /// <param name="packageIDs"></param>
         /// <param name="datetime"></param>
         /// <returns></returns>
         public int StartSendMMs(string MmsId, string packageIDs, string datetime)
         {
             TimerHelper timer = new TimerHelper();
             timer.tasksendmms = new TaskSendMMS() { ExeTime = DateTime.Parse(datetime), MMSId = new Guid(MmsId), PhonePackageId = new Guid(packageIDs) };
             timer.Start();
             ;
         }

C# System.Threading.Timer 使用方法的更多相关文章

  1. System.Threading.Timer 定时器的用法

    System.Threading.Timer 是C# 中的一个定时器,可以定时(不断循环)执行一个任务.它是在线程上执行的,具有很好的安全性.为此  .Net Framework 提供了5个重载的构造 ...

  2. System.Threading.Timer使用心得

    System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高. "只要在使用 Timer,就必须保留对它的引用."对于任何托 ...

  3. System.Threading.Timer的使用技巧

    转自:http://www.360doc.com/content/11/0812/11/1039473_139824496.shtml# System.Threading.Timer timer = ...

  4. System.Threading.Timer 使用

    //定义计时器执行完成后的回调函数 TimerCallback timecallback = new TimerCallback(WriteMsg); //定义计时器 System.Threading ...

  5. C# --System.Timers.Timer 定时方法

    注意Start() 注意要等Interval 时间间隔 static void Main(string[] args) { System.Timers.Timer t = new System.Tim ...

  6. System.Windows.Forms.Timer与System.Timers.Timer的区别(zz)

    .NET Framework里面提供了三种Timer: System.Windows.Forms.Timer System.Timers.Timer System.Threading.Timer VS ...

  7. .NET System.Timers.Timer的原理和使用(开发定时执行程序)

    概述(来自MSDN) Timer 组件是基于服务器的计时器,它使您能够指定在应用程序中引发Elapsed 事件的周期性间隔.然后可以操控此事件以提供定期处理.例如,假设您有一台关键性服务器,必须每周7 ...

  8. Windows Service中使用Threading.Timer需注意回收

    在Windows Service中使用Threading.Timer时需要注意回收池问题 Threading.Timer是基于线程池的,系统会对其进行垃圾回收. 当Threading.Timer定义在 ...

  9. 使用System.Timers.Timer类实现程序定时执行

    使用System.Timers.Timer类实现程序定时执行 在C#里关于定时器类有3个:System.Windows.Forms.Timer类.System.Threading.Timer类和Sys ...

随机推荐

  1. WPFのInkCanvas作为蒙版透明笔迹不透明

    本人最近利用inkcavas做一个蒙版的功能,结果发现笔迹稀释了,经过一番查找发现:应该讲inkcavas的背景设置为白色,然后透明,而不是将整个控件透明,具体代码: <InkCanvas Na ...

  2. Error querying database. Cause: java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名

    今天调试程序是遇到了,下面的一个问题.我将对应的SQL语句拿到Toad下也能正常的执行,感觉有点莫名其妙,根据异常信息的提示查看对应的映射结果集也没发现错误,然后百度了一下,也有许多朋友也遇到过这样的 ...

  3. Window VNC远程控制LINUX:VNC详细配置介绍

    Window VNC远程控制LINUX:VNC详细配置介绍 //---------------------------------------vnc linux下的详细配置 1.VNC的启动/停止/重 ...

  4. 【转】Xcode7真机调试iOS应用程序

    原文网址:http://i.cnblogs.com/EditPosts.aspx?opt=1 近日苹果发布的新的Xcode7带来了许多特性,比如:swift语言比以前运行更快.功能更强.代码具有更高的 ...

  5. cocos2d-x创建工程批处理

    cd /d D:\cocos2d-x-2.2.2\cocos2d-x-2.2.2\tools\project-creator create_project.py -project %1 -packag ...

  6. python3.4.3将汉字转换为大写拼音首字母

    from pypinyin import pinyin a=pinyin(u'杨强',type=FIRST_LETTER)    --->此时返回一个列表并赋给a(元素也是列表) b=[]  - ...

  7. jna

    http://topmanopensource.iteye.com/blog/1752355

  8. 通过网络路径获取的图片 btye 图片流互转

    楼主有一个需要用户用的网站要上传图片,图片不保存到网站,而是要专门存放到一个图片服务器上面,于是需要通过byte的形式来传输 之前写的一个本地图片流转于byte互转 后来发现通过网络路径获取的图片这个 ...

  9. Opencv3.1+python2.7的CentOS7安装

    http://blog.csdn.NET/daunxx/article/details/50506625 转载注释:有些包名和系统包名并不匹配,yum install 找不到的时候,可以yum sea ...

  10. 用emacs 阅读 c/c++ 代码

    在emacs编程中有以下需求 从调用一个函数的地方跳转到函数的定义的地方 或是反过来从函数定义的地方列出所有调用这个函数的地方 实现办法 需要安装以下软件 gnu global(阅读源代码的工具)官网 ...