2023年5月23日 星期二

[.net]使用計時器作後台運算使用Stopwatch

最近在統計設備運轉的時間,計時器意外的好用,可以知道每個動作需要花多少時間完成,其中有異常的部份可以抓出發生的頻率以及發生的固定模式。

統計運轉效率也是客戶的需求之一,提昇設備整體速度首要作的是尋找瓶頸工程,在該處動刀才能改善設備速度,降低運轉時間。

這邊自行作一個簡單的範例使用C#提供的Stopwatch,可以紀錄經過時間到毫秒。簡單界面如下圖:



與一般使用Timer的計時器不同,Stopwatch是使用系統時間作紀錄,Timer會佔用運算時間導致不準確的情況。

 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 public partial class Form1 : Form
    {
        System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();

        public Form1()
        {
            InitializeComponent();
        }

        private void btn_Startsw_Click(object sender, EventArgs e)
        {
            sw.Start();
        }

        private void btn_Stopsw_Click(object sender, EventArgs e)
        {
            sw.Stop();
            label1.Text = sw.Elapsed.TotalSeconds.ToString("0.000") + "(s).";
        }

        private void btn_Resetsw_Click(object sender, EventArgs e)
        {
            sw.Reset();
            label1.Text = "0" + "(s).";
        }
    }


使用Stopwatch統計資料得心應手,簡單方便不受Thread的限制免去處理跨執行序的問題。

沒有留言:

張貼留言