winfrom 定时器不稳定问题处理

有两种定时器:System.Windows.Forms.Timer 和 System.Timers.Timer

System.Windows.Forms.Timer这个不太稳定,如果遇到问题可以直接切换到System.Timers.Timer。

使用方法如下:

Winform有两种常用的定时器,分别是System.Windows.Forms.Timer和System.Timers.Timer。\[1\]System.Windows.Forms.Timer是作为Winform的一个组件,使用简单方便。你可以直接将该组件拖放到Winform上,然后设置定时器的间隔时间,通过事件处理函数来执行定时任务。但是需要注意的是,System.Windows.Forms.Timer的执行频率并不是完全准确的,有时候会有一定的误差。\[3\] 另一种定时器是System.Timers.Timer,它需要通过编写代码来实现。你需要在代码创建一个System.Timers.Timer对象,并设置定时器的间隔时间。然后通过事件处理函数来执行定时任务。相比于System.Windows.Forms.Timer,System.Timers.Timer的执行频率更加准确,完全按照设置的时间频率执行。\[2\] 下面是一个使用System.Timers.Timer的例子: ```csharp using System; using System.Timers; namespace WindowsFormsApplication1 { public partial class Form2 : Form { private int cnt = 0; private System.Timers.Timer myTimer; public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { // 创建定时器,并设置执行频率时间 this.myTimer = new System.Timers.Timer(1000); // 设置定时器执行任务 this.myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed); this.myTimer.AutoReset = true; this.myTimer.Enabled = true; this.myTimer.Start(); } /** * 定时器执行任务 */ private void myTimer_Elapsed(object sender, ElapsedEventArgs e) { cnt++; Console.WriteLine("myTimer-- " + cnt); } } } ``` 总结来说,如果你需要一个简单方便的定时器,可以使用System.Windows.Forms.Timer。但如果你需要一个准确的定时器,可以选择使用System.Timers.Timer。 #### 引用[.reference_title] - *1* *2* *3* [winform定时器的使用](https://blog.csdn.net/iteye_10824/article/details/82602293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值