none
BitVector32 使用後的記憶體空間要如何釋放 RRS feed

  • 問題

  • 請問下列變數myBit與Sect1內的內容要如何清除??
    使用版本 .NET Framework SDK 2.0

    private void button2_Click(object sender, EventArgs e)
            {
                //引用BitVector32,傳入初始值0,以清除所有位元的值
                BitVector32 myBit = new BitVector32(0);

                //在BitVector32建立四個值最大值分別是8,16,24,32
                //建立區段
                BitVector32.Section mySect1 = BitVector32.CreateSection(7);
                BitVector32.Section mySect2 = BitVector32.CreateSection(15, mySect1);
                BitVector32.Section mySect3 = BitVector32.CreateSection(31, mySect2);
                BitVector32.Section mySect4 = BitVector32.CreateSection(32, mySect3);


                //指定數值,指定的數值不能超過區段最大值
                //輸出
                Console.WriteLine("初始值 , 二進位 = {0} , 十進位 = {1}", myBit.ToString(), myBit.Data);
                myBit[mySect1] = 7;//指定數值,指定的數值不能超過區段最大值
                Console.WriteLine("第一段 , 二進位 = {0} , 十進位 = {1}", myBit.ToString(), myBit.Data);
                myBit[mySect2] = 15;
                Console.WriteLine("第二段 , 二進位 = {0} , 十進位 = {1}", myBit.ToString(), myBit.Data);
                myBit[mySect3] = 31;
                Console.WriteLine("第三段 , 二進位 = {0} , 十進位 = {1}", myBit.ToString(), myBit.Data);
                myBit[mySect4] = 32;
                Console.WriteLine("第四段 , 二進位 = {0} , 十進位 = {1}", myBit.ToString(), myBit.Data);
            }

    2009年11月12日 上午 07:39

所有回覆

  • 針對內部使用的布林值和小整數,BitVector32 會比 BitArray 更有效率。當需要時,BitArray 可以無限制成長,但是它具有類別執行個體 (Instance) 需要的記憶體和效能虛耗。相對地,BitVector32 只使用 32 位元。


    ========================================
    如果要強迫.Net framework資源回收, 以GC指令強迫.Net framework資源回收
     myBit = null;
    
    GC.Collect();
                

    Cmf.Net (C) 2009
    2009年11月13日 上午 02:06