c# - GCHandle.Free() 是否只是释放句柄?

标签 c# .net garbage-collection

只是为了确保,假设我已固定字节数组和此固定数组上的 GCHandle。

当调用 GCHandle.Free() 方法时,它是否只是释放句柄并将原始字节数组的管理交还给 GC,因此如果有对该数组的事件引用,则不会刚刚处理完了吗?

最佳答案

你是对的。 GCHandle 只是同一个对象的另一个句柄,只要你有至少一个,你的对象就不会被释放。

但是,您可以分配 Weak 类型的 GCHandle,如果您的 GCHandle 是唯一指向的,这将允许 GC 收集您的对象对它(如果您也有“正常”引用,则不会发生任何坏事)。

关于c# - GCHandle.Free() 是否只是释放句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15206665/

相关文章:

c# - 使用 PadRight 方法填充字符串

.net - 在 .NET DrawString 中换行时禁用断字

c# - 在 .NET 4.0 中创建可与 .NET 4.5 中的 "await"一起使用的异步方法

python - 什么时候收集 python 类和类属性垃圾?

c++ - 为什么这个程序不打印垃圾值

c# - WinRT : Open previously opened files again after close

c# - 如果没有订阅者在一个月内不检索消息,如何自动删除 Azure 服务总线中的队列?

c# - 在 LINQ 之外使用匿名类型是一件好事吗?

c# - 使用 Asp-C 写入 Xml 文件#

sockets - Javamail不会在超时时完全关闭套接字