Linux下使用c#開發倒計時功能

 在這裏,我將採用兩種線程方式開發倒計時功能,線程分別採用ThreadPool 和Thread。使用ThreadPool、Thread,需要先使用System.Threading空間。

 開發功能:下班倒計時(假設每天下午5:30下班)
1.首先我們需要獲取離下班還有多長時間,這裏我們採用TimeSpan來計算時間差。
String ymd = DateTime.Now.ToString("yyyy-MM-dd");
DateTime end = DateTime.ParseExact(ymd + " 17:30:00","yyyy-MM-dd HH:mm:ss",null);
DateTime start = DateTime.Now;
TimeSpan ts = end - start;
2.倒計時功能實現

    2.1 通過ThreadPool方式
ThreadPool.QueueUserWorkItem ((arg) => 
    {
        while(ts.Hours != 0 || ts.Minutes != 0 || ts.Seconds != 0){
            //timeTextViewer 是窗體中TextView的名稱,我們將時間顯示在窗體上
            timeTextViewer.Buffer.Text = 
            "離下班還剩  " + ts.Hours + " 小時 " + ts.Minutes + " 分鐘 " + ts.Seconds + " 秒";
            Thread.Sleep(1000);
            ts = ts.Add(new TimeSpan(0,0,-1));
        }
    });
2.2 通過Thread方式
//在窗體創建的函數中:
Thread thread = new Thread (TimerLeft);
thread.Start ();

//函數外,同一類中
private void TimerLeft(){
    DateTime end = DateTime.ParseExact(ymd + " 17:30:00","yyyy-MM-dd HH:mm:ss",null);
    DateTime start = DateTime.Now;
    TimeSpan ts = end - start;
    while(ts.Hours != 0 || ts.Minutes != 0 || ts.Seconds != 0){
        timeTextViewer.Buffer.Text = 
        "離下班還剩  " + ts.Hours + " 小時 " + ts.Minutes + " 分鐘 " + ts.Seconds + " 秒";
        Thread.Sleep(1000);
        ts = ts.Add(new TimeSpan(0,0,-1));
    }
}
完成後我們就可以運行我們的程序了。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章