2011-04-15 35 views
0

好吧,简单地说,我有一个时间报价器,并在时间滴答事件结束后,我把代码放在里面...但是当时间标签再次出现...它不能访问内部的代码?那么为什么一个处理过的对象不能被重新创建?每当timetick事件通过对象时我必须这样做,因为它必须被使用,而不是简单地被忽略? 10X如何在时间标记事件中访问处置对象?

+0

“配置里面的代码”?这是什么意思?请举个例子! – user492238 2011-04-15 03:28:42

+0

嗨:timertickeven(无论...){object thiss = new object(); object.dispose(); } //所以下一次tickerevent通过...这个对象将不会被访问我猜// – leo 2011-04-15 03:32:06

+0

好吧......我不能100%确定:) ......但似乎是这样。我会再试一次,这可能是因为我现在太困了,犯了错误......但检查了两次。谢谢。 – leo 2011-04-15 04:15:18

回答

1

根据您的意见,我想代码

timertickeven(whatever...) { 
    DisposableObject thiss = new DisposableObject(); 
    DisposableObject.Dispose(); 
} 

是建立一个DisposableObject(由我改名,因为对象本身不实现IDisposable),它实现了IDisposable接口。每当定时器事件被触发时,这样的对象被创建并且随后被处置。由于每次都重新创建对象,因此没有与最后一次放置的对象的连接,事件处理程序已执行。因此,解决问题的方法是,明天再睡一会儿,再次观察情况 - 以清醒的头脑。

此外:重新思考,如果有可能以某种方式将这些一次性物品集中起来。一般而言,IDisposable用于资源消耗或非常大的对象。不得不经常重新创建它们可能会降低执行性能。

+0

另一方面,我将IDisposable用于任何需要在事物消失之前清理事物(例如事件处理程序)的对象,无论它们的大小或资源消耗如何。除此之外,很好的答案。 – AndrewS 2011-04-15 05:24:48

相关问题