查看: 0|回复: 0

[教程] C# 中Stopwatch和timer的实现示例

[复制链接]

1

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-10-8
发表于 2026-1-9 10:55:07 | 显示全部楼层 |阅读模式

在C#中,StopwatchTimer(通常指的是 System.Timers.TimerSystem.Windows.Forms.Timer)是两个不同的类,它们用于不同的目的:

Stopwatch 类

Stopwatch 类位于 System.Diagnostics 命名空间,主要用于精确测量时间间隔。它非常适合用于性能分析、测量代码块的执行时间或任何需要高精度计时的场景。Stopwatch 提供了以下功能:

  • 以高精度(通常为计时器分辨率,可能是微秒级别)启动、停止和重置计时器。
  • 提供了 Elapsed 属性,返回一个 TimeSpan 对象,表示经过的时间。
  • 支持跨平台使用,因为它不依赖于操作系统的计时器。

示例代码

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // 执行一些操作
        for (int i = 0; i < 1000000; i++)
        {
            // 模拟工作负载
        }

        stopwatch.Stop();
        Console.WriteLine("Elapsed time: " + stopwatch.Elapsed);
    }
}

Timer 类

Timer 类通常指的是 System.Timers.TimerSystem.Windows.Forms.Timer,它们用于在指定的时间间隔后执行代码。这些计时器主要用于定时任务,如每隔一段时间执行一次操作。

System.Timers.Timer

System.Timers.Timer 位于 System.Timers 命名空间,提供了一个服务器端的定时器,可以用于任何需要定时执行任务的场景,包括Windows服务。

示例代码

using System;
using System.Timers;

class Program
{
    static void Main()
    {
        Timer timer = new Timer(1000); // 设置定时器间隔为1000毫秒
        timer.Elapsed += (sender, e) => 
        {
            Console.WriteLine("Timer ticked at " + DateTime.Now);
            // 执行定时任务
        };
        timer.AutoReset = true; // 设置定时器自动重置
        timer.Enabled = true; // 启动定时器

        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
        timer.Dispose(); // 清理资源
    }
}

System.Windows.Forms.Timer

System.Windows.Forms.Timer 位于 System.Windows.Forms 命名空间,主要用于Windows Forms应用程序中,以指定的时间间隔触发事件。

using System;
using System.Windows.Forms;

class Program
{
    static void Main()
    {
        Timer timer = new Timer();
        timer.Interval = 1000; // 设置定时器间隔为1000毫秒
        timer.Tick += (sender, e) => 
        {
            Console.WriteLine("Timer ticked at " + DateTime.Now);
            // 执行定时任务
        };
        timer.Start(); // 启动定时器

        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
        timer.Stop(); // 停止定时器
    }
}

总结

  • Stopwatch:用于测量时间间隔,适合性能分析和精确计时。
  • Timer:用于在指定的时间间隔后执行代码,适合定时任务。

根据你的具体需求,可以选择使用 Stopwatch 来测量时间间隔,或使用 Timer 来执行定时任务。

到此这篇关于C# 中Stopwatch和timer的实现示例的文章就介绍到这了,更多相关C# Stopwatch timer内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!

您可能感兴趣的文章:
  • C#中高精度计时器Stopwatch的用法详解
  • C#使用Stopwatch实现计时功能
  • C# Stopwatch实现计算代码运行时间
  • C#中Stopwatch的使用及说明
  • C# 中使用Stopwatch计时器实现暂停计时继续计时功能
  • 如何使用C# Stopwatch 测量微秒级精确度
  • .NET/C# 使用Stopwatch测量运行时间
  • C#使用StopWatch获取程序毫秒级执行时间的方法
  • C#中Forms.Timer、Timers.Timer、Threading.Timer的用法分析
  • C#中的Timer和DispatcherTimer使用实例
  • C#中的三种定时计时器Timer用法介绍
  • C#中三种Timer计时器的详细用法
  • 详解C#中的定时器Timer类及其垃圾回收机制
  • C#使用timer实现的简单闹钟程序
  • [C#].NET中几种Timer的使用实例
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部