当前位置: 首页 > 编程语言 > C#

using语句——会触发垃圾回收吗?分享

时间:2023-04-11 01:37:25 C#

using语句——它会触发垃圾回收吗?我想做的是将一些可疑函数包装在using语句中以触发垃圾收集,有没有人使用或看到过类似的东西?这行得通吗?你怎么看待这件事?using(Stringwrapper=newString("maybethiswilltr??iggergc")){//在这里做一些事情//或者也许://function1();//函数2();////然后看看它是否漏水?//例如:_mygeometry=newGeometry();_mygeometry=空;//GC会释放这个吗?你认为这会有用吗?你以前用过这个吗?有什么我可以做的而不是字符串吗?我使用WPF,我尝试使用(vargarbage=1){}但它不起作用,我认为String可能。using语句仅适用于那些实现IDisposable的类。它只是确保您在using()中定义的对象在块执行后甚至发生某些异常时调用其Dispose方法。它类似于使用trywithfinally块。如果您怀疑应用程序中存在内存泄漏,最好使用一些可用的内存分析器来检测问题。您当前的代码不应编译,因为String类未实现IDisposable编辑:由于已编辑问题_mygeometry=null;//GC会释放这个吗?您应该看到这个SO链接:C#:Objectvariableshouldbeassignednull?从VinayC回答只有实现IDisposable的类才能在using(...){...}语句中使用。using语句允许程序员指定使用资源的对象何时释放它们。提供给using语句的对象必须实现IDisposable接口。该接口提供释放对象资源的Dispose方法。来源:MSDN不幸的是,string没有实现这个接口。您是否怀疑某个字符串导致您的应用程序发生内存泄漏?你在忙什么?您可以发布一些代码以便我们检查吗?以上就是C#学习教程:using语句——会触发垃圾回收吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: