.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  }

你可能感兴趣的:(.net)