|
0
|
| Ramzi Khahil · 技术社区 · 9 年前 |
|
|
1
0
我认为这是一种常见的做法,即注册处理程序的实例也会注销它(我很确定计时器不会在它的dispose方法中为您注销处理程序):
但在你的情况下
如果计时器实例被传递到viewmodel中,或者以某种方式公开,以便其他对象也可以持有其引用,则会出现问题。在这种情况下,当您的viewmodel无法被垃圾收集时,您可能会导致内存泄漏,因为计时器无法被垃圾回收,因为另一个对象对它有引用等等。
但不要让viewmodel IDisposable仅用于此目的。只要确保只有vm实例可以保存计时器实例引用,然后就可以忽略注销和处理计时器。除非您创建了很多这样的视图模型,并且确实需要始终保持较低的内存占用。当移除对viewmodel的引用时,它将被垃圾收集和处理。IDisposable主要用于当您需要确保一个组件在您告诉它时立即清理资源时,例如在一组图像中循环时,您确实需要在将另一个位图加载到内存之前释放一个位图。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |