• C#


    1. System.Windows.Forms.Timer   (在Window Form中使用的定时器

    当一个System.Windows.Forms.Timer类被构造时,当前定时器会和当前线程进行关联。而当计时器的计满后,一个定时器消息将被插入到当前线程的消息队列中。当前线程逐一处理消息中的所有消息,并一一派发给各自的处理方法。这样的机制和利用工作者进程定时有很大的区别,System.Windows.Forms.Timer类型并没有涉及多线程的操作,定时器的设置、定时方法的执行都在同一个线程之上。这就意味着System.Windows.Forms.Timer并不能准确计时,尤其当消息阻塞时,定时器的误差将会更大,因为定时器消息只能等待在前面的所有消息处理完后才能得到处理。但是因为System.Windows.Forms.Timer类型的定时器并不涉及多线程的操作,因此是线程安全的,不会发生回调方法重入的问题。

    namespace test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //实例化一个timer  
            System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
            private void StartTimeBtn_Click(object sender, EventArgs e)
            {
                //给timer挂起事件  
                myTimer.Tick += new EventHandler(Callback);
                //使timer可用  
                myTimer.Enabled = true;
                //设置时间间隔,以毫秒为单位  
                myTimer.Interval = 1000;//1s 
            }
            private void StopTimeBtn_Click(object sender, EventArgs e)
            {
                myTimer.Stop();
            }
            //回调函数  
            private void Callback(object sender, EventArgs e)
            {
                //获取系统时间  
                textBox1.Text = DateTime.Now.ToLongTimeString().ToString();
            }
    
            
        }
    }


    ————————————————
    版权声明:本文为CSDN博主「细水长流-青山」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/tianjing0805/article/details/75221067

  • 相关阅读:
    遭遇争强好胜
    Redis学习笔记一:数据结构与对象
    Lua模块测试
    SQL JOIN
    Error:(1, 1) java: 非法字符: ‘ufeff’
    Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
    HTTPS为什么又快又安全?
    QA
    linux日志分割、去重、统计
    Maven:dependency scope
  • 原文地址:https://www.cnblogs.com/MuZiJin/p/11805133.html
Copyright © 2020-2023  润新知