sách gpt4 ai đã đi

.net - 了解 gcroot

In lại 作者:行者123 更新时间:2023-12-03 10:41:09 34 4
mua khóa gpt4 Nike

我一直在读这个bài báo了解 gcroot 模板。我明白

gcroot provides handles into the garbage collected heap



Sau đó

the handles themselves are not garbage collected.



我不明白的是以下内容:

When the CLR object moves with the garbage-collected heap, the handle will return the new address of the object. A variable does not have to be pinned before it is assigned to a gcroot template.



这是否意味着垃圾收集器将删除 CLR 对象,即使存在引用该对象的 gcroot 句柄?

它所指的“新地址”是什么? “变量在分配给 gcroot 模板之前不必固定”是什么意思?

1 Câu trả lời

垃圾收集不只是删除未引用的对象,它还在仍然被引用的对象周围移动,例如对空闲内存池进行碎片整理。当文章谈到对象在 CLR 堆中移动时,它可能是在说“当垃圾收集移动仍然引用的对象时,gcroot 句柄将自动更新以仍然指向 CLR 对象。”

Bạn có thể sử dụng pin_ptr 防止 GC 移动对象。关键字,像这样:

Object ^obj = gcnew ;
pin_ptr pinned = obj; /* obj won't move due to GC as long as pinned is in scope. */
/* do something interop-y here, pass to native code in a DLL, etc. */

Nhìn thấy bài viết này有关固定的更多信息。

观察:文章可能有错别字。如果它说“在垃圾收集堆内”而不是“在垃圾收集堆内”,是否会提高您的理解?文章中的措辞方式听起来就像每当 GC 打扫房屋时,地球都会在您的脚下移动。

关于.net - 了解 gcroot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281834/

34 4 0
Bài viết được đề xuất: asp.net-mvc - 依赖于另一个字段的属性
Bài viết được đề xuất: r - 从 data.frame 中提取列作为向量
Bài viết được đề xuất: debugging - 你如何调试PDF文件?
Bài viết được đề xuất: asp.net - Alpha 5 版本 10 如何评价 Web 应用程序开发
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com