C#多线程——Timer

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:23   1841   0

每隔一定的时间,触发去做指定的事情,可以用timer类。

Timer timer = new Timer(timerDelegate, ParamObject, 1000, 1000) 其中,

1、第一个参数是要执行的方法

2、第二个参数是回调方法要使用的对象信息;

3、第三个参数是延时启动的时间间隔,“0”表示立即启动;

4、第四个参数是Timer的Interval。

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Collections;

namespace Demo
{
    class ParamObject
    {
        public int iCounter = 0;
        public Timer aTimer;
    }

    class Program
    {
       public static void Main(string[] args)
       {
           ParamObject aParamObject = new ParamObject();
           Timer aTimer = new Timer(new TimerCallback(CheckStatus), aParamObject, 1000, 1000);
           aParamObject.aTimer = aTimer;

           while (aParamObject.aTimer != null)
           {
               Thread.Sleep(0);
           }
           Console.ReadLine();
       }

        static void CheckStatus(object paramObject)
        {
            ParamObject aParamObject = (ParamObject)paramObject;
            aParamObject.iCounter++;
            Console.WriteLine("{0} status: {1}", DateTime.Now.TimeOfDay, aParamObject.iCounter);

            if (aParamObject.iCounter == 5)
            {
                // Wait 1000 ms and go on to do the timer event
                aParamObject.aTimer.Change(1000, 2000);
                Console.WriteLine("Timer interval changed!");
            }

            if (aParamObject.iCounter == 10)
            {
                Console.WriteLine("Dispose timer");
                aParamObject.aTimer.Dispose();
                aParamObject.aTimer = null;
            }
        }
    }
}



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP