高分,内存的实时回收。

a854468521 a854468521 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在程序中使用了一个不断的添加子窗体和不断关闭子窗体,主程序的内存消耗一直在增加,在主程序中
调用Collect,执行后也未见任何效果。
即使在任务管理器中看到该进程的内存消耗下降但总的内存消耗反而是上升的.
如果不能强制的内存回收,该程序消耗的内存将导致资源耗尽,系统崩溃。
Private Sub Main_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Collect = New PublicData.Collect

End Sub
'添加子窗体
'子窗体内只有一个AxCell1控件(用友的Cell1表格控件).

Private Sub AddF_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles AddF.Click
Sheet = New Sheet.Sheet
sheet.MdiParent = Me
sheet.Show()
End Sub
'关闭子窗体
Private Sub CloseF_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CloseF.Click
Sheet = Me.ActiveMdiChild
Sheet.Dispose()
End Sub


'强制清理内存
Public Class Collect
Dim Thread As Threading.Thread
Public Sub New()
' 开启清理线程
Thread = New Threading.Thread(AddressOf Clear)
Thread.Priority = Threading.ThreadPriority.Highest
Thread.Start()
End Sub
Private Sub Clear()
'进行垃圾清理。
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
Threading.Thread.Sleep(1000)
End Sub
Public Sub Close()
'关闭线程
Thread.Join(1)
MyBase.Finalize()
End Sub
End Class



...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
a854468521
VB 16,718 成员 110,520 内容