当前位置:  开发笔记 > 后端 > 正文

使用哪个.Net Timer()

如何解决《使用哪个.NetTimer()》经验,为你挑选了2个好方法。

我在VB.Net 2.0中有一个遗留的WinForms Mdi应用程序,我正在添加功能.其中一个补充是当当前时间接近指定值(截止日期)时需要提出的警告.我的目的是每小时检查一次,直到截止日期前不到一小时,然后按指定的时间间隔显示警告,直到时间结束.

用户需要能够在截止日期之前甚至在截止日期之后继续使用应用程序,但他们需要定期了解截止日期的接近程度.

该应用程序尚未使用System.Threading,目前我对它的了解有限.我知道有3种不同的Timer()方法可用:

System.Threading.Timer()

Windows.Forms.Timer()和

System.Timers.Timer()

我的问题是,这是最好的方法吗?我试图使用线程计时器,但由于WinForms不是线程安全的,我试图访问另一个类时遇到运行时错误.是否值得使类/表单线程安全?我完全偏离了轨道吗?

谢谢.



1> Qwertie..:

这篇文章解释得很好:

比较.NET Framework类库中的Timer类

听起来像System.Windows.Forms.Timer是适合你的.

我的准则:如果您希望计时器在主GUI线程上运行,请坚持使用Windows.Forms.Timer.如果可以在线程池线程上异步调用计时器,或者如果您不希望遇到System.Windows.Forms.Timer容易受到的小延迟,请使用System.Timers.Timer.System.Threading.Timer具有与其他两个不同的接口,并且不是线程安全的; 就个人而言,我不是粉丝.



2> Aaron Smith..:

我只想使用Forms计时器.我想我读到它不那么准确,但听起来你并不需要它.


表单计时器自动在表单上同步,这应该消除跨线程控制访问问题作为奖励
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有