GC 類別 和 Dispose 方法

就像標題上所寫的,
GC 是一個類別;控制系統記憶體回收行程,自動重新利用未使用之記憶體的服務。
Dispose 是一個方法;釋放 MarshalByValueComponent(類別) 所使用的資源。
雖然二個常用來清掉一些佔用的記憶空間,但根據預設值,記憶體回收行程不會呼叫 Dispose 方法;然而,Dispose 方法的實作可以呼叫 GC 類別中的方法來自訂記憶體回收行程的最終處理行為。

參考資料
MSDN Library / GC 類別
MSDN Library / Dispose 方法

GC(Garbage Collector)在使用上,
建議不要跟執行呼叫的程序放在一塊,
說明如下:

因為會沒有用的  ^ ^"   在下試過了

    Sub DoExport()
        ExportToExcel()
        '......
        'GC 放這裡才有效果
        GC.Collect()
    End Sub
    Sub ExportToExcel()
        Dim sfd As New SaveFileDialog
        With sfd
            .DefaultExt = "xls"
            .RestoreDirectory = True
            .Filter = "Microsoft Office Excel 活頁簿 (*.xls)|*.xls"
            .FilterIndex = 1
            .Title = "儲存檔案"
            .FileName = String.Format("{0:yyyyMMdd hhmmss}", Now) '& " 多角貿易訂單、採購、進貨、銷貨資料檢查"
        End With
        If sfd.ShowDialog() = DialogResult.OK Then
            Dim xlsApp As Microsoft.Office.Interop.Excel.Application
            Dim xlsWB As Microsoft.Office.Interop.Excel.Workbook
            Dim xlsSht As Microsoft.Office.Interop.Excel.Worksheet
        End If
        '......
        'GC 不要和 Excel 放在同一層,這樣會沒有作用
        GC.Collect()
    End Sub

沒有留言:

張貼留言