关于vb.net 设置对象为nothing 的问题请大家讨论,来着有分
上面是界面
下面的代码虽然长,但是很简单
Public Class Form1 Public hs As Hashtable Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim testStr As String = "" hs = New Hashtable Dim j As Integer = 0 For j = 0 To 1000 testStr = testStr & "这里是测试的字符串目的是占用内存看出内存变化===========,岸上的风斯蒂芬空间上的你海岸上的风斯蒂芬空间上的考虑房价松动风流酷似地方你海岸上的风斯蒂芬空间上的你海岸上的风斯蒂芬空间上的考虑房价松动风流酷似地方你海岸上的风斯蒂芬空间上的你海岸上的风斯蒂芬空间上的考虑房价松动风流酷似地方你海岸上的风斯蒂芬空间上的考虑房价松动风流酷似地方" hs.Add(j, testStr) Next '请查看内存因为创建了一个很大的对象,所以内存狂飙到150-200mb之间了 End Sub '设置hs为nothing ,测试看看设置之后内存是否立即就释放掉了 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click hs = Nothing '很遗憾通过任务管理器并没有发现内存降下来 '请大家说说为什么这里 到底释放了对象还是没有释放? End Sub '查看对象的长度 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If hs Is Nothing Then MsgBox("对象为空了") Else MsgBox("现在有记录数量:" + hs.Count) End If End Sub '使出杀手锏,虽然很多资料里不让用,这个方法,但是的确点击后 内存一下子就降了下来 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click GC.Collect() '内存一下子恢复到了5-7mb之间 End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '现在是初始化状态内存大约在5-7 mb之间 End SubEnd Class