gpt4 book ai didi

c# - Win32.DestroyIcon 与 Icon.Dispose

转载 作者:太空狗 更新时间:2023-10-29 22:27:45 25 4
gpt4 key购买 nike

我有这行代码:

System.Drawing.Icon icon = System.Drawing.Icon.FromHandle(shinfo.hIcon);

几行之后,在使用图标后我有一行:

Win32.DestroyIcon(shinfo.hIcon);

但是,当对我的代码进行静态分析时,它说图标可能存在 Resource_Leak。我想知道如果我调用 dispose 方法会有什么不同吗:

icon.Dispose();

而不是现在正在使用的 Win32.DestroyIcon()。它们之间有什么区别吗?我只是在维护这段代码,所以我不确定原始开发人员是否有任何特殊意图使用 Win32.DestroyIcon。

最佳答案

静态分析正在触发,因为您没有处理“IDisposable 资源”。

我建议始终坚持使用托管版本,并使用 icon.Dispose()。这将(在内部)负责为您调用 DestroyIcon,但始终坚持使用纯托管 API。

Win32.DestroyIcon 实际上更适合与您作为 IntPtr 接收的图标一起使用,而不是与 Icon 实例一起使用完全由框架管理。

关于c# - Win32.DestroyIcon 与 Icon.Dispose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com