为了账号安全,请及时绑定邮箱和手机立即绑定

System.Timers.Timer对System.Threading.Timer

System.Timers.Timer对System.Threading.Timer

紫衣仙女 2019-07-04 12:27:25
System.Timers.Timer对System.Threading.Timer最近我一直在查看一些可能的计时器,以及线,时间和Timers.Timer那些在我看来是必要的(因为它们支持线程池)。我正在做一个游戏,我计划使用所有类型的事件,有不同的间隔,等等。哪个是最好的?
查看完整描述

3 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

本文提供了一个相当全面的解释:

"比较.NET Framework类库中的计时器类“-也可提供作为.chm文件

具体的区别似乎是System.Timers.Timer面向多线程应用程序,因此通过其SynchronizationObject财产,鉴于System.Threading.Timer具有讽刺意味的是没有线程安全的开箱即用。

我不相信这两者之间有什么区别,因为这关系到你的间隔有多短。


查看完整回答
反对 回复 2019-07-04
?
FFIVE

TA贡献1797条经验 获得超6个赞

System.Threading.Timer是个普通的计时器。它会调用线程池线程(从工作池)。

System.Timers.TimerSystem.ComponentModel.Component包裹着System.Threading.Timer,并提供了一些用于在特定线程上调度的附加特性。

System.Windows.Forms.Timer而是包装一个本机仅消息-HWND和用途窗口定时器若要在HWND消息循环中引发事件,请执行以下操作。

如果你的应用程序没有用户界面,并且你想要尽可能的轻量级和通用的.net计时器,那么(因为你很高兴知道你自己的线程/调度)。System.Threading.Timer就像它在框架中得到的一样好。

我不太清楚所谓的“不线程安全”的问题是什么System.Threading.Timer是。也许这和在这个问题中提出的问题是一样的:线程-System.Timers.Timer与System.Threading.Timer的安全性或者每个人的意思都是:

  1. 当您使用计时器时,编写竞赛条件很容易。见这个问题:定时器(系统.线程)线程安全

  2. 重新加入计时器通知,其中计时器事件可以触发并调用第二处理完第一事件。见这个问题:使用System.Threading.Timer和Monitor的线程安全执行


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 1607 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信