1
11
听起来你有一个定稿器,基本上-如果你只打电话给
这是否代表一个bug是另一回事。一般来说,对于需要执行的终结器来说,这不是一个好主意,但在您的情况下,这可能是可以的。 |
2
6
不是很奇怪。当一个对象有一个终结器(并且没有对其调用gc.SuppressFinalize())时,它得到一个执行暂停(它是 不 已收集,以便终结器可以使用有效对象运行)。此对象引用的所有实例也将得到执行的暂停。需要通过GC进行第二轮清理。 另一方面,大多数程序,包括大型和复杂的程序,都应该能够在不调用gc.collect()的情况下运行,即使只调用一次。你想打两次电话…
听起来很复杂,很容易避免…有几条推荐信 进入之内 您的域/视图模型?理想情况下,您只需剪切1或2个对“主”对象的引用,然后将其忽略。 |
3
0
@Nitin,我不确定我的建议是否对您有帮助,但是根据经验,我们应该避免显式地调用gc.collect()。因为它可能会导致性能问题。相反,尝试遵循正确的处理模式。 |
4
0
您有一个弱引用,您希望将其设置为空,因为您调用GC,并且您认为没有任何东西可以使对象保持活动状态。 我不知道.NET中实现的引用有多弱,但它们很可能会延迟对象的收集,并使用像finalizers这样的系统。 或者可能是您有一个需要最终确定的对象,因为您没有对其调用Dispose()。(非常常见于WPF或WinForms) 要了解这一点,您需要使用memoryProfiler,至少要花一天的时间学习如何使用任何内存分析器,因为您将获得有关WPF内部对象的大量数据。我个人会下载一个免费的 Redgateâs memory profiler 看看有什么问题,有什么支持也很有帮助。(其他内存分析程序也可以很好地工作,在很大程度上,这取决于您习惯了什么。) |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |