只是为了确保,假设我已经在这个固定数组上固定了字节数组和gchandle。
当调用gc handle.free()方法时,它是否只是释放句柄并将原始字节数组的管理权交还给gc,因此,如果有对该数组的活动引用,它现在还不会被释放?
最佳答案
你是对的。GCHandle
只是同一对象的另一个句柄,只要您至少有一个,您的对象就不会被释放。
但是,您可以使用GCHandle
类型分配Weak
,如果您的GCHandle
是唯一指向它的对象,则gc可以收集您的对象(如果您也有“正常”引用,则不会发生任何错误)。