winfrom後臺怎麼寫定時器?
阿新 • • 發佈:2021-07-25
winfrom後臺怎麼寫定時器?
例子:
private void label5_Click(object sender, EventArgs e) { string time = DateTime.Now.ToString(); this.label5.Text = time; } private void button8_Click(object sender, EventArgs e) { Timer timer = new Timer(); timer.Interval= 1000;//定時1000毫秒(一秒) timer.Elapsed += label5_Click; timer.Start();//啟動定時任務 //停止定時任務 //timer.stop(); //載入時 取消跨執行緒檢查,防止報錯() Control.CheckForIllegalCrossThreadCalls = false; }
這裡Control.CheckForIllegalCrossThreadCalls = false;是防止報(System.InvalidOperationException:“執行緒間操作無效: 從不是建立控制元件“label1”的執行緒訪問它。”)的錯誤。
非同步執行也可以
例子:
private void button10_Click(object sender, EventArgs e) { System.Timers.Timer timer = new Timer(); timer.Interval = 1000; timer.Elapsed += label6_Click; timer.Start(); } private void label6_Click(object sender, EventArgs e) { label6.BeginInvoke(new Action(() => { label6.Text = DateTime.Now.ToString("yyyy/HH/dd HH:mm:ss"); })); }
其實winfrom有自帶的“timer”。
在設定執行時間間隔
timer1.Interval = 1000;
在timer1.Tick+=寫完後兩下tab鍵自動生成委託事件
之後你就可以在委託時間裡寫你想寫的方法了。