2012年8月30日 星期四

釋放記憶體


GC.Collect();
//下面這行是重點
GC.WaitForPendingFinalizers();
 
或採用 Windows API [C#][VB.NET]壓縮.NET程式的記憶體用量
這招好像不錯喔,有空來試試看!  
 
 
底下有更好的範例:引用來源:your VB .NET App taking up too much memory??
 
Public Class MemoryManagement
 
    Private Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" ( _
  ByVal process As IntPtr, _
  ByVal minimumWorkingSetSize As Integer, _
  ByVal maximumWorkingSetSize As Integer) As Integer
 
    Public Shared Sub FlushMemory()
        GC.Collect()
        GC.WaitForPendingFinalizers()
        If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
            SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
        End If
    End Sub
 
End Class  

沒有留言:

張貼留言