C# 定时器传值问题详解
1 定时器的使用
1.1传参数定时器
//传参的定时器例子 private static System.Timers.Timer aTimer; Main(ApprovalID); public static void Main(int ApprovalID) { aTimer = new System.Timers.Timer(600000); //10分钟 600000 aTimer.Elapsed += new ElapsedEventHandler((s, e) => OnTimedEvent(s, e, ApprovalID)); aTimer.Interval = 60000; aTimer.Enabled = true; aTimer.AutoReset = false; } private static void OnTimedEvent(object source, ElapsedEventArgs e, int ApprovalID) { //解锁申请表 Model.Sys.ShenPiApprovalModel SQM = new ShenPiApprovalModel(); SQM = BLL.Sys.ShenPiApprovalBLL.Instance.GetModel(ApprovalID); if (SQM.ApprovalState != 1) { SQM.ApprovalState = 0;//锁定申请表 BLL.Sys.ShenPiApprovalBLL.Instance.UpdateJS(0, " ID=" + ApprovalID + " "); } }
1.2不传参数 定时器
System.Timers.Timer t = new System.Timers.Timer(60000);//实例化Timer类,设置间隔时间为10000毫秒; t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件; t.AutoReset = false;//设置是执行一次(false)还是一直执行(true); t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; //定时器函数 public void theout(object source, System.Timers.ElapsedEventArgs e) { Model.User.UserModel userM = new Model.User.UserModel(); var MM = BLL.User.UserBLL.Instance.GetModel(6326); MM.LinkMan = "定时器我是"; BLL.User.UserBLL.Instance.Update(MM); }
2 函数运行时间的记录
2.1 根据.NET类库自带的函数。
C#记录程序运行时间记录显示 //引入命名空间 using System.Diagnostics; //清空导入时间 lbImportTime.Text = ""; (随便显示地方) //开始记录时间 Stopwatch myWatch = Stopwatch.StartNew(); //记录运行时间 //==================== //停止记录时间 myWatch.Stop(); //显示运行时间 lbImportTime.Text = myWatch.ElapsedMilliseconds.ToString();
2.1 根据.NET类库自带的函数。
//定义一个时间对象 System.Diagnostics.Stopwatch oTime = new System.Diagnostics.Stopwatch(); oTime.Start(); //记录开始时间 for (int i = 0; i < 100000; i++) Console.WriteLine("###"); oTime.Stop(); //记录结束时间 //输出运行时间。 Console.WriteLine("程序的运行时间:{0} 秒",oTime.Elapsed.Seconds); Console.WriteLine("程序的运行时间:{0} 毫秒", oTime.Elapsed.Milliseconds);
2.2根据时间函数,求时间差。
DateTime oTimeBegin = DateTime.Now; //获取开始时间 for (int i = 0; i < 100000; i++) Console.WriteLine("###"); DateTime oTimeEnd = DateTime.Now; //获取结束时间 TimeSpan oTime = oTimeEnd.Subtract(oTimeBegin); //求时间差的函数 Console.WriteLine(oTime.ToString());
我曾拾到过一束光,日落时还给了夕阳。