【发布时间】:2015-05-14 22:18:53
【问题描述】:
假设我有一个类,它有一个不做任何关键工作的 Timer 对象——只是一些 GUI 工作。假设有两种情况,计时器每 5 分钟经过一次:
- 在
Timer_Elapsed代表中完成了很多工作,需要 2 分钟才能完成。 - 在
Timer_Elapsed委托中几乎没有什么工作要做,需要几毫秒才能完成
处理对象和计时器的正确方法是什么? Timer_Elapsed 事件委托运行的时间量是否会影响您对如何正确处理的决定?
【问题讨论】:
-
不是它本身花费的时间,而是它做了什么。 IE。如果它使用将要同时释放的资源,您可能必须与计时器完成同步,并允许协作取消委托中正在完成的工作。
-
@Alex - 那么你将如何为这样的类编写 dispose 方法?
-
@Plutonix - 不是我要问的。你说的是给定的。我认为亚历克斯在“合作取消”方面走在了正确的轨道上,但我很好奇他会怎么做。