c# - 是否有任何事件告诉应用程序何时发生了垃圾收集?

标签 c# events garbage-collection

我正在尝试找到一种了解垃圾回收的方法。无论是开始、结束还是正在进行中。我真的只需要一些与收藏本身相关的事件(我认为)。

我的问题是我有一个 WeakEventManager(从头开始编写)并且我有删除的清理方法和不再存在的 WeakReferences(WeakReferences 在字典中)。

问题是我必须知道什么时候该“清理”了。当收集器在做它的事情时进行清理会很好。即便是在垃圾回收之后,至少下一次回收会移除这些旧对象。

最佳答案

System.GC 类提供了一个 RegisterForFullGCNotification 方法,该方法允许在垃圾收集即将完成和完成时发出通知。

这并不理想,因为使用此方法有一些注意事项,例如必须禁用并发垃圾收集才能使此方法起作用。

请查看以下链接以获取完整信息:

Garbage Collection Notifications

GC.RegisterForFullGCNotification Method

关于c# - 是否有任何事件告诉应用程序何时发生了垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622276/

相关文章:

c# - 将 C++ 数组返回到 C#

javascript - 键码问题 - 几乎可以与 ctrlKey 一起使用

events - 当用户离开(或被移除)团队时,与 team_join 等效的 slack 事件是什么

java - 如何在不创建临时对象的情况下迭代嵌套的 TreeMap

java - 仅通过使 head = null 删除单个链表?

c# - RSA .NET 加密 Java 解密

c# - 将 ListView 所选项目标签转换到 GUID

c# - 如何将整个 MailKit mime 消息保存为字节数组

c# - 请解释一下这个 C# 代码片段

java - 在 libgdx 中处理资源和屏幕