在System.timers.timer中给定时器触发的Elapsed事件传递参数

来源:互联网 发布:mac怎么改用户名中文 编辑:程序博客网 时间:2024/05/20 16:39

一个项目中用到大量的定时器,用来做定时的任务。比如定时给某个客户发送短信之类的。

现在定时器触发事件之后需要给事件传递一个参数过去。其中可能包括这个任务的一些必需的信息,

System.Timers.Timer的事件处理方法如下:

  public abstract void TimerEvent(object sender, ElapsedEventArgs e);  

先看了看 timer,和ElapsedEventArgs 中有没有能利用起来的属性。发现不可能。

于是 打算继承 ElapsedEventArgs ,用来传递参数。但是找不到设置timer发送继承之后的ElapsedEventArgs 的方法,这种办法也不行。

最后继承System.Timers.Timer

using System;

namespace TaskSchedulerManager
{
 /// <summary>
 /// 自定义定时器
 /// </summary>
 public class TaskTimer : System.Timers.Timer
 {
  #region <变量>
  /// <summary>
  /// 定时器id
  /// </summary>
  private int id;
  /// <summary>
  /// 定时器参数
  /// </summary>
  private  string param ;
  #endregion

  #region <属性>
  /// <summary>
  /// 定时器id属性
  /// </summary>
  public int ID
  {
   set{id = value;}
   get{return id;}
  }
  /// <summary>
  /// 定时器参数属性
  /// </summary>
  public string Param
  {
   set{param = value;}
   get{return param;}
  }
  #endregion

  /// <summary>
  /// 构造函数
  /// </summary>
  public TaskTimer() : base ()
  {

  }
  
 }
}

然后在事件处理方法中:将sender 转型为System.timers.timer

/// <summary>
  /// timer  Elapsed事件的处理方法
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
public override void TimerEvent(object sender, System.Timers.ElapsedEventArgs e)
  {
   //Console.WriteLine("DllTwo:" + DateTime.Now.ToString());
   TaskSchedulerManager.TaskTimer tt = (TaskTimer)sender;
   Console.WriteLine("id : " + tt.ID);
   Console.WriteLine("Param: " + tt.Param);
  }

问题解决


 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 租住个厕所对着卧室怎么办 农村的房子没有房产证怎么办 墙面漆颜色深了怎么办 浴室门对卧室门怎么办 卧室40多个平方太大怎么办 卧室门洞太窄了怎么办 刷漆的墙面脏了怎么办 卧室颜色刷重了怎么办 感觉房子买小了怎么办 淋浴房一边是窗怎么办 1岁宝宝让狗咬了怎么办 2岁宝宝让狗咬了怎么办 带4个小孩只买两张儿童票怎么办 墙面补漆颜色有色差怎么办 墙壁刷的乳胶漆颜色不满意怎么办 门被水泡的鼓了怎么办 定制衣柜做大了怎么办 找平的地面高了怎么办 卫生间推拉门锁坏了怎么办 阳台推拉门框安装斜了怎么办? 电子门钥匙坏了怎么办 门的保险锁坏了怎么办 小区楼宇门坏了怎么办 门的锁坏了怎么办 汽车门把锁坏了怎么办 厨柜门上的板板掉了怎么办 衣柜门滑轮坏了怎么办 厨房推拉门推动时有声音是怎么办? 塑料推拉门声音大怎么办不好推 推拉门锁扣坏了怎么办 衣柜移门拉不动怎么办?如何保养 擦黑色桌面有层白灰怎么办 宝宝睡觉不盖被子怎么办 孩子盖被子就哭怎么办 一盖被子就发烧怎么办 两岁宝宝认被子盖怎么办 小孩吃多了发烧怎么办 两岁宝宝拉蛔虫怎么办 吃了长蛆的东西怎么办 被蜱虫咬了又找不到虫子怎么办 木家具生黑虫子怎么办