C#中怎么释放资源
C#中怎么释放对象资源呢?例如下面的代码:Class1 myObject=new Class1();
myObject.method1();
myObject=null;
这样释放资源可以吗?还有其它什么好方法吗? --------------------编程问答-------------------- dispose
GC --------------------编程问答-------------------- 对象的Dispose()方法! --------------------编程问答-------------------- 如果按楼上两位说的,代码要改成这样吗?
Class1 myObject=new Class1();
myObject.method1();
myObject.Dispose();
是这样释放myOject对象吗?Dispose()方法不应该这样用吧。
--------------------编程问答-------------------- 不光是有Dispose(),还有Finalize()、GC.Collect(),
不过.net有垃圾收集机制,如果不是很有必要,不要使用这些,实际上就算调用了上面三个方法中的前两个,该对象也不一定就马上释放掉了,只不过是把它的垃圾收集的优先级提高了,在下一次收集的时候就会释放掉,而GC.Collect()是立即释放资源(收集垃圾),但不释放指定的资源。 --------------------编程问答-------------------- 谢谢楼上! 那么您认为下面代码的第三行应该写成什么好呢?谢谢!
1. Class1 myObject=new Class1();
2. myObject.method1();
3. --------------------编程问答-------------------- 谢谢楼上! 那么您认为下面代码的第三行应该写成什么好呢?谢谢!
1. Class1 myObject=new Class1();
2. myObject.method1();
3. --------------------编程问答-------------------- 如果你的对象很大的话,可以先Dispose(),然后GC.Collect()
1. Class1 myObject=new Class1();
2. myObject.method1();
3. myObject.Dispose();//前提是你的Class1继承了IDispose接口
4. myObject = null;
5. GC.Collect();
建议你一般不要这样做,因为频繁的收集垃圾对系统的性能有很大的影响的
补充:.NET技术 , C#