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());

 

posted @ 2017-07-06 18:09  革凡  阅读(1789)  评论(0编辑  收藏  举报