2009-12-22 30 views
2

我想问一个System.Timers.Timer实例是在单线程,线程池还是其他的地方运行?.NET - System.Timers.Timer问题

如果它在单个线程上运行,你认为什么是最适合这个例子:

  • 我想每分钟更新所有人物的健康
  • 我要更新所有人物的能量每2秒
  • 我要更新所有人物的特价每40秒

我应该运行它们每一个单独的线程,在一个单独的事件运行它们,或运行所有这些我的ñ单线程必须检查时差?

+0

顺便说一句,你的问题是关于_.NET_'System.Timers.Timer'组件。 C#编程语言没有定时器。 – 2009-12-22 04:43:28

+0

看看问题:http://stackoverflow.com/questions/1416803 – Oliver 2009-12-22 07:42:37

回答

2

我会从单个计时线程运行所有操作并计算时差。这样我就可以在没有实例化更多定时器的情况下运行尽可能多的操作。

同步发生在相同时间间隔的动作也更容易。

0

我应该在一个单独的线程上运行他们每个人,在一个单独的事件运行它们,或运行所有那些在一个线程必须检查时间差异。

在我看来,你应该使用三个计时器。三是一个不应该以负面影响表现的数字。

计算时间差时的一大缺陷是时间变化(夏令时,与Internet同步)。 你将不得不使用Environment.TickCount