我有這行代碼: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