Visual studio之C# 新建線程與定時器的使用


背景

App需要開線程和定時器,本文對這兩種的通用方法做個記錄

正文

線程

  1. 添加命名空間
using System.Threading;
  1. 創建線程
//shutdownlazer()即是線程要執行的函數
Thread shutdownlazer_thread = new Thread(shutdownlazer);
  1. 開啟線程
//shutdownlazer_thread即為第 2 步獲取到的線程句柄
shutdownlazer_thread.Start();
  1. 關閉線程
    線程不需要自己關閉,當shutdownlazer()函數運行完退出了,線程也就自然關閉了。當然,若是關閉主窗口,則線程一定要關閉,可在主窗口關閉事件中調用函數關閉所有線程,
// 窗口關閉,關閉所有線程
private void Mainwin_FormClosing(object sender, FormClosingEventArgs e)
{
        System.Environment.Exit(0);
}

定時器

  1. 添加命名空間
using System.Timers;
  1. 實例化一個定時器
private static System.Timers.Timer RUtimer;
  1. 創建定時器並設定定時器參數
    // 創建一個100ms定時的定時器
    RUtimer = new System.Timers.Timer(100);    // 參數單位為ms
    // 定時時間到,處理函數為OnTimedUEvent(...)
    RUtimer.Elapsed += OnTimedUEvent;
    // 為true時,定時時間到會重新計時;為false則只定時一次
    RUtimer.AutoReset = true;
    // 使能定時器
    RUtimer.Enabled = true;
    // 開始計時
    RUtimer.Start();

此處需要注意的是,當讓系統自動添加OnTimedUEvent(...)函數時,自動生成的函數如下,

void OnTimedUEvent(object sender, ElapsedEventArgs e)
{
        throw new NotImplementedException();
}

throw new NotImplementedException();此句是為了提醒我們來實現該定時器的代碼,若不將該代碼注釋,則APP實際運行起來,定時器時間一到,就會在此處拋出異常。
4. 停止定時器

    RUtimer.stop();

至此記錄完畢。

參考鏈接

記錄時間:2017-5-9
記錄地點:深圳WZ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM