最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#定時器中的System.Timers.Timer詳解

 更新時間:2026年02月03日 17:11:21   作者:ByteGeek?  
System.Timers.Timer 是 .NET 框架中用于創(chuàng)建基于時間間隔的定時器類,它屬于 System.Timers 命名空間,這篇文章給大家介紹了C#定時器中的System.Timers.Timer相關(guān)知識,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

System.Timers.Timer 是 .NET 框架中用于創(chuàng)建基于時間間隔的定時器類,它屬于 System.Timers 命名空間。這個定時器類設(shè)計用于多線程環(huán)境中的服務(wù)器或服務(wù)組件,沒有用戶界面,在運(yùn)行時不可見。

核心特性

‌事件驅(qū)動模型‌: System.Timers.Timer 通過 Elapsed 事件來通知定時器已經(jīng)過了指定的時間間隔。當(dāng)定時器到達(dá)設(shè)定的時間間隔時,會引發(fā) Elapsed 事件。
‌多線程執(zhí)行‌: 該定時器在 ThreadPool 線程上運(yùn)行,適用于后臺任務(wù)處理。它可以在一定時間間隔內(nèi)重復(fù)執(zhí)行任務(wù)。
‌自動重置功能‌: 通過 AutoReset 屬性控制是否重復(fù)觸發(fā)事件。當(dāng) AutoReset 設(shè)置為 true 時,定時器會持續(xù)重復(fù)執(zhí)行;設(shè)置為 false 時,只在第一次時間間隔后觸發(fā)一次。

主要屬性

● ‌Interval‌:設(shè)置定時器觸發(fā)事件的時間間隔(單位為毫秒)
● ‌AutoReset‌:控制定時器是否重復(fù)觸發(fā)事件
● ‌Enabled‌:控制定時器是否啟用

使用示例

案例代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using Timer = System.Timers.Timer;
namespace ConsoleTest
{
    internal class Program
    {
        private static Timer backgroundTimer;
        private static int taskCounter = 0;
        private static bool isRunning = false;
        static void Main(string[] args)
        {
            Console.WriteLine("System.Timers.Timer 使用案例");
            Console.WriteLine("============================");
            // 創(chuàng)建定時器,每3秒執(zhí)行一次
            backgroundTimer = new Timer(3000);
            backgroundTimer.Elapsed += OnTimerElapsed;
            backgroundTimer.AutoReset = true;
            // 啟動定時器
            backgroundTimer.Enabled = true;
            isRunning = true;
            Console.WriteLine("定時器已啟動,每3秒執(zhí)行一次后臺任務(wù)");
            Console.WriteLine("輸入 'stop' 停止定時器,輸入 'exit' 退出程序");
            while (true)
            {
                string input = Console.ReadLine();
                if (input?.ToLower() == "stop")
                {
                    StopTimer();
                }
                else if (input?.ToLower() == "exit")
                {
                    break;
                }
            }
            // 清理資源
            StopTimer();
            backgroundTimer.Dispose();
            Console.WriteLine("程序結(jié)束");
        }
        private static void OnTimerElapsed(object source, ElapsedEventArgs e)
        {
            taskCounter++;
            Console.WriteLine($"[后臺任務(wù) {taskCounter}] 執(zhí)行時間: {e.SignalTime:yyyy-MM-dd HH:mm:ss}");
            // 模擬一些后臺工作
            PerformBackgroundWork();
        }
        private static void PerformBackgroundWork()
        {
            try
            {
                // 模擬耗時操作
                Thread.Sleep(1000);
                Console.WriteLine($"[后臺任務(wù) {taskCounter}] 工作完成");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[錯誤] 后臺任務(wù)執(zhí)行出錯: {ex.Message}");
            }
        }
        private static void StopTimer()
        {
            if (isRunning)
            {
                backgroundTimer.Enabled = false;
                isRunning = false;
                Console.WriteLine("定時器已停止");
            }
        }
    }
}

與其他定時器的區(qū)別

System.Timers.Timer 與 System.Threading.Timer 和 System.Windows.Forms.Timer 相比,具有以下特點(diǎn):
● ‌System.Timers.Timer‌: 定期觸發(fā)事件,類旨在用作多線程環(huán)境中的基于服務(wù)器或服務(wù)組件;它沒有用戶界面,在運(yùn)行時不可見(不可以直接更新UI界面)
● ‌System.Threading.Timer‌: 定期在線程池線程上執(zhí)行單個回調(diào)方法(不可以直接更新UI界面)
● ‌System.Windows.Forms.Timer‌: 一種 Windows 窗體組件,按固定時間間隔觸發(fā)事件(可以直接更新UI界面)

到此這篇關(guān)于C#中定時器中的System.Timers.Timer詳解的文章就介紹到這了,更多相關(guān)C# 定時器System.Timers.Timer內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

司法| 淳化县| 张家港市| 汝州市| 子洲县| 永丰县| 邵东县| 林西县| 西城区| 商洛市| 江西省| 卢氏县| 礼泉县| 深州市| 乐亭县| 墨竹工卡县| 宁德市| 清流县| 邹平县| 宣化县| 宝兴县| 从江县| 金华市| 巩留县| 泰顺县| 宜良县| 江北区| 台安县| 恩平市| 郎溪县| 兴宁市| 湖口县| 乌兰察布市| 闻喜县| 无锡市| 木里| 镇赉县| 和硕县| 富阳市| 柘城县| 迁西县|