精品熟人妻一区二区三区四区不卡-精品爽黄69天堂a-精品水蜜桃久久久久久久-精品丝袜国产自在线拍-精品丝袜国产自在线拍a-精品丝袜国产自在线拍免费看

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 實現定時任務的5種原生方法

admin
2025年6月2日 10:47 本文熱度 397

前言

程序猿小張最近遇到了一個難題——他需要每天早上9點自動給老板發送工作報告,就像個數字化的公雞打鳴一樣準時。在C#的世界里,這樣的定時任務該怎么實現呢?

定時器在編程中就像你的私人助理,可以幫你按時執行各種任務:數據備份、郵件發送、緩存清理...

今天,就讓我們一起來探索C#中那些讓你成為 "時間管理大師" 的定時器吧!

1. System.Timers.Timer

System.Timers.Timer 就像一個全能型選手,它是基于服務器的定時器,精度較高,適合需要在特定時間間隔重復執行的任務,特別要說明的是,它是線程安全的。

using System;
using System.Timers;

classProgram
{
    static void Main()
    {
        var timer = new System.Timers.Timer(1000); // 1秒間隔
        timer.Elapsed += (sender, e) => 
        {
            Console.WriteLine($"定時任務執行啦!時間:{e.SignalTime}");
        };
        timer.AutoReset = true// 設置為重復觸發
        timer.Start();
        
        Console.WriteLine("按任意鍵退出...");
        Console.ReadKey();
        timer.Stop();
    }
}

2. System.Threading.Timer

System.Threading.Timer 是一個輕量級的定時器,它性能更好,沒有UI組件依賴,適合后臺任務,不過在使用時,一定要記得手動釋放資源。

using System;
using System.Threading;

classProgram
{
    static void Main()
    {
        // 參數:回調方法, 狀態對象, 延遲時間, 間隔時間
        var timer = new Timer(state => 
        {
            Console.WriteLine($"線程定時器觸發!時間:{DateTime.Now}");
        }, null10002000); // 1秒后開始,每2秒觸發
        
        Console.WriteLine("按任意鍵退出...");
        Console.ReadKey();
        timer.Dispose(); // 記得釋放資源
    }
}

3. System.Windows.Forms.Timer

這是一個專為 Windows Forms 設計的定時器,事件在 UI 線程上觸發,可以直接操作 UI 控件,非常適合用于更新用戶界面元素,不過,它的精度較低(約55ms),不太適合高精度定時。

using System;
using System.Windows.Forms;

classProgram
{
    static void Main()
    {
        var form = new Form();
        var timer = new Timer { Interval = 1000 }; // 1秒間隔
        
        timer.Tick += (sender, e) =>
        {
            Console.WriteLine($"窗體定時器觸發!時間:{DateTime.Now}");
        };
        
        timer.Start();
        Application.Run(form);
    }
}

4. Stopwatch

Stopwatch 通常用來測量程序的執行時間,它的精度非常高,達到微秒級,所以換一個思路,也可以把它作為定時器,比如下面這個例子:

using System;
using System.Diagnostics;
using System.Threading;

classProgram
{
    static void Main()
    {
        var stopwatch = new Stopwatch();
        stopwatch.Start();
        
        while (true)
        {
            if (stopwatch.ElapsedMilliseconds >= 1000)
            {
                Console.WriteLine($"高精度計時!時間:{DateTime.Now}");
                stopwatch.Restart();
            }
            Thread.Sleep(10); // 降低CPU占用
        }
    }
}

5. Thread.Sleep 和 Task.Delay

有時候,我們只需要簡單的延遲執行某些代碼,這時候可以使用 Thread.Sleep(同步)或 Task.Delay(異步) 來實現,如:

using System;
using System.Threading.Tasks;

public class AsyncAwaitExample
{
    public static async Task Main(string[] args)
    {
        Console.WriteLine("開始計時...");
        await Task.Delay(5000); // 等待5秒
        Console.WriteLine("5秒后...");
    }
}

總結

現在你已經掌握了 C# 定時器的“十八般武藝”,是時候做個總結了!

  • 簡單任務:System.Threading.Timer/Task.Delay(Thread.Sleep)
  • 簡單任務且高精度:Stopwatch
  • UI相關:Windows.Forms.Timer
  • 服務器應用:System.Timers.Timer

現在,去用代碼馴服時間吧!


該文章在 2025/6/2 12:49:18 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 四虎成人精品国产永久免费无 | 亚洲国产日韩欧美综合久久 | 欧美老熟妇乱大交xxxxx | 日韩精品一区二区三区69 | 中文字幕亚洲综合久久2025 | 久久99精品亚洲专区无码 | 国产精品毛片免费在线看片 | 亚洲av成人无 | 欧美日韩高清一区二区三区电影 | 91视频入口| 国产午夜精品久久久久九九电影 | 精品香蕉一区二区三区 | 国产ts系列馨蕾给客人 | 99久久er热在这里都是精品66 | 国产精品免费播放久久 | 亚洲午夜精品无码专区在线观看 | 国产精品伦理久久久久 | 成人先峰| 久久99精品久久久久久妇女 | 中文字幕日本人妻久久久免费 | 伊伊人成| 国产精品乱码一区二区三区软件 | 国产亚洲成给综合 | 中文韩国日本免费不卡五月天成人 | 99re8精品视频在线播放 | 97视频官网版下载 | 中文字幕在线播放 | 亚洲熟妇自偷自拍另类图片站 | 香蕉视频在线观看福利国产 | 99网站在线观看 | 亚洲av成人中文无码专区 | 亚洲国产成人99精品激情在线 | 国产成人尤物精品一区 | 亚洲精品电影网 | 欧美一区二区三区无码大象视频 | 亚洲国产一区二区三区 | 精品国产免费久久无码 | 熟女少妇av一区二 | 欧美人体一区二区视频 | 日韩精品搭讪在线视频播放 | 果冻传媒视频电影 |