我有这行代码:Win32.DestroyIcon与Icon.Dispose
System.Drawing.Icon icon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
几行后,使用图标后,我也行:
Win32.DestroyIcon(shinfo.hIcon);
但是在运行时我的代码静态分析它说图标有Resource_Leak的潜力。我想知道会这有什么区别,如果我调用Dispose方法:
icon.Dispose();
,而不是被现在使用的Win32.DestroyIcon()。他们之间有什么区别吗?我只是维护这个代码,所以我不确定是否有原始开发人员使用Win32.DestroyIcon的任何特殊插入。
辉煌,谢谢里德,当我可以将标记为答案。 – DukeOfMarmalade 2012-03-27 15:42:01
实际上,如果(private)boolean'ownHandle'为true,'icon.Dispose()'只会销毁图标,这取决于托管图标对象的构造方式。具体来说,['Icon.FromHandle(..)'将布尔值设置为false](https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Icon.cs,3a4e2c70109d46bc)等[ Icon.Dispose()'什么也不做](https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Icon.cs,8d050d7603efcc48)。 – JBSnorro 2018-01-14 22:15:37