C# 实现 倒计时 (一)

本文介绍了C#实现倒计时的三种方法,重点讨论了System.Timers.Timer的使用,包括其工作原理和在WinForm及控制台应用程序中的应用。在控制台下,为观察倒计时效果需使用Console.ReadLine()。示例代码展示了如何避免多线程同步问题,通过线程锁来确保正确执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# 的定时器的实现方法有 3 种:

(1)使用 System.Windows.Forms.Timer

(2)使用 System.Threading.Timer

(3)使用 System.Timers.Timer

其中:

System.Windows.Forms.Timer 只能在 WinForm 中使用,通过Windows消息机制实现的,类似于 VB 或 Delphi 中的 Timer 控件,内部使用 API  SetTimer 实现的。

它的主要缺点是计时不精确,而且必须有消息循环,因此在 Console  Application (控制台应用程序)中无法使用。

System.Timers.Timer 和 System.Threading.Timer 非常类似,它们是通过.NET  Thread  Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。

System.Timers.Timer 还可以应用于WinForm,完全取代上面的 Timer 控件。

它们的缺点是不支持直接的拖放,需要手工编码。

 

说明:在控制台下,如果要看得到 倒计时 的效果,需要在最后加一句 Console.ReadLine(); ,否则是看不到效果的(参下)。

 

先讲讲

 System.Timers.Timer 的使用:

MSDN 的示例:

//Timer.cs
using System;
using System.Timers;

public class Timer1
{
    //定义一个 类级别 的 Timer
    private static System.Timers.Timer aTimer;
    //如果 不是 类级别 的 Timer,我们应该使用 GC.KeepAlive(aTimer); 来维持变量的存在。
    //一般
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值