C# - 定時器Timer函數(跟控件無關)

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
函數

相關文章
相關標籤/搜索