博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# TimerCallBack的使用
阅读量:4979 次
发布时间:2019-06-12

本文共 2117 字,大约阅读时间需要 7 分钟。

刚写C#时,使用Timer比较多的是System.Windows.Forms.Timer。这个控件使用起来比较简单一些,它直接继承自Component。在使用时,TImer控件绑定Tick时间,开始计时采用Timer.Start()或者TImer.enable=True后才会自定计时,停止时候采用TImer.stop()或者Timer.enable=false。在开始之前,需要设置一下Timer.Interval=100(时间间隔ms)。Timer控件和它所在的Form属于同一个线程,因此执行效率不是很高,不如新开一个线程采用system.Threading.Timer。

using System;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication13{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            timer1.Interval = 1000;            timer1.Start();        }        private void timer1_Tick(object sender, EventArgs e)        {            textBox1.Text = DateTime.Now.ToShortDateString();        }    }}

System.Threading.Timer  定义该类时,主要有四个参数:

  • 需要回调的对象
  • 要传入给委托的参数,null表示没有参数
  • 延时多久开始执行
  • 每隔几秒执行一次
public void TestTimerCallBack()        {            TimerCallback tc = new TimerCallback((o) => { MessageBox.Show("Do something"); });            System.Threading.Timer t = new System.Threading.Timer(tc, null, 0, 1000);        }

再加入一个比较经典的用法:

using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace TimerApp{  class Program  {    static void Main(string[] args)    {      Console.WriteLine("***** Working with Timer type *****/n");      // Create the delegate for the Timer type.      TimerCallback timeCB = new TimerCallback(PrintTime);      // Establish timer settings.      Timer t = new Timer(        timeCB,             // The TimerCallback delegate type.        "Hello From Main",  // Any info to pass into the called method (null for no info).        0,                  // Amount of time to wait before starting.        1000);   //一秒钟调用一次 Interval of time between calls (in milliseconds).      Console.WriteLine("Hit key to terminate...");      Console.ReadLine();    }    static void PrintTime(object state)    {      Console.WriteLine("Time is: {0}, Param is: {1}",        DateTime.Now.ToLongTimeString(), state.ToString());    }  }}

 

转载于:https://www.cnblogs.com/Kyle-Study/p/10173497.html

你可能感兴趣的文章
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
sass学习笔记-安装
查看>>
Flask (二) cookie 与 session 模型
查看>>