如何在time-tick事件中访问已处置的对象?

时间:2011-04-15 03:21:37

标签: c# .net

好的,简单地说我有一个时间自动收报机,并且在时间滴答事件结束后我将代码内部处理...但是当时间戳再次出现时......它无法访问其中的代码?那么为什么无法重新创建被处置对象呢?每次timetick事件通过对象时我必须这样做,因为它必须是,而不是简单地忽略? 10X

1 个答案:

答案 0 :(得分:1)

根据你的评论,我假设代码

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

正在创建一个DisposableObject(由我重命名,因为对象本身不实现IDisposable),它实现了IDisposable接口。每次触发计时器事件时,都会创建这样的对象,然后再处理。由于每次都重新创建对象,因此没有与最后一次处理的对象的连接,执行了事件处理程序。因此,解决方案就是让你有一些睡眠,明天再次观察情况 - 带着新鲜的心灵。

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