C# 如何确定对象是否已收集?

C# 如何确定对象是否已收集?,c#,.net,garbage-collection,C#,.net,Garbage Collection,1) 是否有一个工具可以告诉您特定对象是否已被垃圾收集 2) 有没有一种方法可以查看在给定时间点哪个gc队列中的所有对象 我记得大约5-6年前看过一段9频道的视频,两个人在演示cordbg或mdbg,调试器在命令行上显示垃圾收集数据。虽然这可能是重复的,但已经有了一些答案,您始终可以使用.NET中的类来跟踪对象被垃圾收集的时间 对某事物进行GCed的唯一方法是不引用它。任何你必须检查对象是否还活着的方法都会使它保持活着。也没有要GCed的对象队列。一旦确定这些物体不应该同时存活,它们就会立即被谋

1) 是否有一个工具可以告诉您特定对象是否已被垃圾收集

2) 有没有一种方法可以查看在给定时间点哪个gc队列中的所有对象


我记得大约5-6年前看过一段9频道的视频,两个人在演示cordbg或mdbg,调试器在命令行上显示垃圾收集数据。

虽然这可能是重复的,但已经有了一些答案,您始终可以使用.NET中的类来跟踪对象被垃圾收集的时间

对某事物进行GCed的唯一方法是不引用它。任何你必须检查对象是否还活着的方法都会使它保持活着。也没有要GCed的对象队列。一旦确定这些物体不应该同时存活,它们就会立即被谋杀。听起来你应该读一读GC,了解它们的基本工作原理。@Servy:据我所知,他似乎不想在代码中这样做。他想要某种工具。。。为什么,我无法想象。这是违反规定的。此外,任何时候当您试图考虑垃圾回收的内容时,您可能都做了一些错误的事情。CLR内存诊断是一种托管API,它包装了以前仅内部的CLR调试API。可从以下网址获得:。您可以使用它来获取所需信息。非常感谢@mikez和CodeCaster的帮助。嗨@Servy:什么是f可达队列?GC将对象标记到哪些不同的代?Downvoter:为什么?编辑:他在找一个工具,而不是一门课。哎呀。