C#中的计时器

本文深入探讨C#中的三种计时器实现方式:单线程计时器、使用新线程的计时器及基于回调方法的计时器。详细阐述它们的工作原理、优缺点以及应用场景,帮助开发者根据具体需求选择合适的计时器类型。

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

C#有三种计时器

1.定义在System.Windows.Forms.Timer里

2.定义在System.Threading.Timer类里    

3.定义在System.Timers.Timer类里


首先明确一点,无论开几个窗口,c#至默认开始一个线程,该线程负责一切处理。也就是说,如果在某一个方法中返回时间长的话,就会出现界面卡。

第一种计时器最大的特点是单线程的。可以直接在工具箱中拖入界面。在这种情况下,每次定时器时间到,就会触发事件。由于这种情况下不新建线程,所以事件的执行要服从先后顺序,如果主线程需要响应的事件过多就会有不及时的问题。该种计时器只能作为窗体的成员。


第二种计时器相对于前者关键是使用了新线程。会启动新线程来执行回调函数。因为是新线程,所以该线程不能访问窗体中的控件,只能通过代理方式访问。这种定时器并不依赖与窗体。


第三种计时器相对于前者使用的是回调方法而不是事件。并由线程池线程提供支持。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值