.NET 自定义类时实现垃圾回收

 1 public class Class1 : IDisposable
 2 {
 3  public Class1()
 4  {
 5  }
 6 
 7  ~Class1 ()
 8  {
 9   //垃圾回收器将调用该方法,因此参数需要为false。
10   Dispose (false);
11  }
12 
13  //该方法定义在IDisposable接口中。
14  public void Dispose ()
15  {
16   //该方法由程序调用,在调用该方法之后对象将被终结。
17   //因为我们不希望垃圾回收器再次终结对象,因此需要从终结列表中去除该对象。
18   GC.SuppressFinalize (this);
19   //因为是由程序调用该方法的,因此参数为true。
20   Dispose (true);
21  }
22 
23  //所有与回收相关的工作都由该方法完成
24  private void Dispose(bool disposing)
25   {
26   lock(this//避免产生线程错误。
27   {
28    if (disposing)
29    {
30     //需要程序员完成释放对象占用的资源。
31    }
32 
33   //对象将被垃圾回收器终结。在这里添加其它和清除对象相关的代码。
34  }
35 }
36 }
原文地址:https://www.cnblogs.com/Andon_liu/p/2144040.html