<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CLR via C# 讀書筆記 5-1 何時對托管資源使用Finalize

      Finalize方法常用于回收非托管資源,以防止資源泄露

      在較少的情況下它也會被用于托管資源

      1.構造函數中如果拋出異常, 那么只有Finalize方法才會被執行,在這里可以回收一些已經分配的資源

      (Dispose不會被執行!!!)當然:Finalize方法的執行時間還是下一次GC的時候(依然不確定時間)

      如果不實現該方法將會造成資源泄露

      以下代碼演示了在這種情況

      代碼
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading;
      using System.Diagnostics;
      using System.Reflection.Emit;

      using Oracle.DataAccess.Client;
      using System.Runtime.InteropServices;
      using System.Collections.Concurrent;
      namespace ClassLibrary1
      {


      public class SourceClass
      {

      [STAThread]
      static void Main(string[] args)
      {
      try
      {
      using (ClassA a = new ClassA())
      {
      }
      }
      catch (Exception)
      {

      }
      try
      {
      ClassB a
      = new ClassB();
      }
      catch (Exception)//這可不是一個代碼好習慣, 只是為了測試才做成這樣
      {

      }
      Console.WriteLine(
      "Collect");
      GC.Collect();
      Console.WriteLine(
      "End");
      //在我的機器上輸出結果依次是
      //Collect
      //End
      //Finalize
      Console.ReadLine();
      }
      internal class ClassA : IDisposable
      {
      public ClassA()
      {
      throw new Exception("Just A Test");
      }

      public void Dispose()
      {
      Console.WriteLine(
      "Dispose");
      }
      }
      internal class ClassB
      {
      public ClassB()
      {
      throw new Exception("Just B Test");
      }

      ~ClassB()
      {
      Console.WriteLine(
      "Finalize");
      }
      }
      }
      }

       

      所以一般情況下為了完全避免資源泄露例如Memory leak, 通常將類實現為以下的方式

       

      代碼
      internal class ClassA : IDisposable
      {
      public ClassA()
      {
      throw new Exception("Just A Test");
      }

      public void Dispose()
      {
      Dispose(
      true);
      GC.SuppressFinalize(
      this);
      }

      public void Dispose(bool disposing)
      {
      //do something
      Console.WriteLine("Dispose");
      }

      ~ClassA()
      {
      this.Dispose(false);
      }
      }

       

      posted on 2010-12-06 11:37  聽說讀寫  閱讀(451)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 国产精品自产在线观看一| 精品国产午夜福利在线观看 | 日韩精品人妻av一区二区三区| 无码伊人久久大杳蕉中文无码 | 亚洲无人区码一二三四区| 四虎成人精品在永久在线| 中日韩精品视频一区二区三区| 国产性色的免费视频网站| 精品黄色av一区二区三区| 中文乱码字幕在线中文乱码| 太康县| 国产a在视频线精品视频下载| 久久亚洲av综合悠悠色| 九九成人免费视频| 久久永久视频| 色综合久久中文字幕综合网 | 儋州市| 麻豆文化传媒精品一区观看| 偷拍专区一区二区三区| 国产手机在线αⅴ片无码观看| а∨天堂一区中文字幕| 日韩一区二区大尺度在线| 福利网午夜视频一区二区| 亚洲欧美偷国产日韩| 国产精品内射在线免费看| 久久精品成人免费看| av无码精品一区二区乱子 | 亚洲精品成人综合色在线| 香蕉乱码成人久久天堂爱| 国产精品亚洲二区在线播放| 日韩深夜福利视频在线观看| 婷婷99视频精品全部在线观看 | 亚洲色婷婷久久精品av蜜桃久久| 熟女精品视频一区二区三区| 一区二区三区四区高清自拍| 少妇被多人c夜夜爽爽av| 亚洲欧美人成电影在线观看| 亚洲欧美精品一中文字幕| 亚洲熟女精品一区二区| 极品少妇无套内射视频| 又爽又黄又无遮挡的激情视频|