C# 线程执行笔记

C# 线程执行笔记

猿掌柜
2024-04-09 / 1 评论 / 6 阅读 / 正在检测是否收录...

一定要声明成全局变量以保持对Timer的引用,不要声明成业务内的局部变量,否则会被垃圾收集器回收!

using System;
using System.Threading;
using System.Threading.Tasks;

namespace ActionStudy
{
    class Program
    {
        private System.Threading.Timer timer;
        public static Action Print_Action;//声明事件
        static void Main(string[] args)
        {
            //创建定时器,2000是延迟多少毫秒,10000是间隔时间
            timer = new Timer(new TimerCallback(Execute), null, 2000, 10000);
            //timer= new System.Threading.Timer(new TimerCallback(Print), this, 5000, 0);
            //事件触发绑定的方法
            Print_Action += Print;

            
            Console.ReadKey();
            
        }
        /// <summary>
        /// 创建回调触发方法
        /// </summary>
        /// <param name="o"></param>
        public static void Execute(object o)
        {
            
            //Console.WriteLine("just run now");
            Print_Action?.Invoke();
        }
        /// <summary>
        /// 需要定时执行的方法
        /// </summary>
        public static void Print() {
            Console.WriteLine("Action我是狗子 希望你幸福!"+DateTime.Now.ToString());
        }
       
    }
}


1

评论 (1)

取消
  1. 头像
    莫大于
    Windows 10 · Google Chrome

    https://fish.lnote.top/

    回复