VB.NETでデスクトップアプリケーションを開発しました。フレームワークは3.5であり、SQLServer2005としてのバックエンドです。
以下は、マスターフォームで書き込んだ[フォームを閉じたときにメモリを解放する]コードで、すべてのフォームが継承されています。
Private Declare Auto Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal procHandle As IntPtr, ByVal min As Int32, ByVal max As Int32) As Boolean
Private Declare Function EmptyWorkingSet Lib "psapi.dll" (ByVal hProcess As IntPtr) As Long
Private Sub frmEMR_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
GC.Collect()
GC.WaitForPendingFinalizers()
GC.RemoveMemoryPressure(GC.GetTotalMemory(True))
EmptyWorkingSet(Process.GetCurrentProcess.Handle)
SetProcessWorkingSetSize(Process.GetCurrentProcess.Handle, -1, -1)
End Sub
私はこのヒープメモリを書いていましたが、論争の的になっています。
また、管理されていないメモリが増加しています。
誰かがこれから私を助けることができますか?
ありがとうございます。それでは、お元気で
ヘマルシャー