Csharp/C#教程:调试期间是否运行垃圾收集?分享


调试期间是否运行垃圾收集?

我有一个程序打开一个Excel COM对象,做一些东西,并关闭它。 然后我想在文件关闭后移动它。 如果我运行没有断点的程序,这可以正常工作。 但是,如果我在尝试移动文件之前进入调试模式我会得到一个IOException:“进程无法访问该文件,因为它正被另一个进程使用。”

这是什么交易? 当一个程序被允许以全速运行而不是在我踩过它时,垃圾收集是否表现更好? 踩着我的代码做的不仅仅是非常缓慢地运行它吗? 调试模式还有其他后果吗? 遇到的其他错误只是因为我在调试而没有运行exe?

不在调试器中运行时,垃圾收集的优化方式不同,是的。 特别是,CLR可以检测到变量不会用于方法的其余部分,并将其视为不再是GC根。 在调试器中,范围中的变量在整个方法中充当GC根,因此您仍然可以使用调试器检查值。

然而,这应该很少成为一个问题 – 如果终结器实际上执行了一些清理,它应该只影响事情,如果你明确地及时整理(例如using语句),你通常不会注意到区别。

上述就是C#学习教程:调试期间是否运行垃圾收集?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1012288.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐