我有以下一段代码,只是想查看谁将调用dispose?它是自动调用的.
ToolTip toolTip = new ToolTip();
toolTip.SetToolTip(button, toolTipText);
Run Code Online (Sandbox Code Playgroud)
还要说我创建一个Timer局部变量,谁会调用dispose,内存泄漏怎么样,如果我立即调用dispose,那么timer事件就不会被触发.
我是否需要确保在调用计时器事件处理程序中调用,即使我没有对timer变量的任何引用.我还需要取消注册该计时器的事件处理程序.
编辑:
ToolTip在显示它的控件上注册事件处理程序.触发表单的Deactivate事件时会自动调用Hide()方法.表单关闭时会发生这种情况.这反过来确保其Windows句柄被销毁并且事件处理程序未注册.之后,没有剩余的一次性物品.
您可以使用Reflector或Reference Source自行验证.相关方法依次为BaseFormDeactivate,HideAllToolTips,Hide,ClearTopLevelControlEvents.
你不必调用Dispose(),你没有泄漏.
归档时间: |
|
查看次数: |
1637 次 |
最近记录: |