一个有关资源释放的问题,各位,帮帮忙
大致代码如下
1 while(true)
2 {
3 Class1 class1=new Class1();
4 ……//class里的操作,执行完成后需要等待大概2分钟后会有回调方法,在这里不会等待回调方法的相应
5 Thread.Sleep(1000);
6 }
这种情况下,class1会不会自动释放,类似:一个人(class1),让他儿子(class1里的方法)去叫张三,让张三把李四叫来,一会,儿子回来了,告诉这个人说,已经传到话了,然后就到了sleep这里,又过了一会李四来了
这种情况会不会自动释放class1
5回答
-
慕桂英3389331
class1对象,只要有引用就不会成为垃圾,你的 class1 调用方法,方法里可能调用 别的方法, 这些都会保持对它的引用。
class1是托管资源,每次 循环都会创建新的,原来的 还是在托管堆中,只是没有 直接的变量 指向它。
托管资源 要靠GC来回收,不要 强制回收,靠GC的话,我们不用管, 不晓得它什么时候回收。
-
慕娘9325324
c#定义的变量是有块级作用域的也就是我们常说的{}
-
元芳怎么了
只有你这个进程关闭他才会释放,否则不会释放。建议自己手动释放吧
-
一只斗牛犬
这种情况下会回收的。