首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

救命,mStream.Write()执行完后,内存不能释放.呀.解决办法

2012-02-22 
救命,mStream.Write()执行完后,内存不能释放.急呀.下面是贴的函数,目的就是想拷贝一些数据到MemoryStream

救命,mStream.Write()执行完后,内存不能释放.急呀.
下面是贴的函数,目的就是想拷贝一些数据到MemoryStream中,
执行完For循环后,内存增加了几百M.   但无论如何也释放不了.   除非关闭程序.  
请教有没有人知道程序的毛病是出在哪里呀?!       在线等,解决完立刻给分!
谢谢呀!

Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click
                Dim   mStream   As   MemoryStream
                Dim   nData   As   Integer   =   40960
                Dim   iPtr   As   Integer
                Dim   PACKET_SIZE   As   Int16   =   4096
                Dim   readBuffer(PACKET_SIZE)   As   Byte

                For   iPtr   =   0   To   PACKET_SIZE   -   1
                        readBuffer(iPtr)   =   255
                Next

                mStream   =   New   MemoryStream
                While   nData   >   0
                        mStream.Write(readBuffer,   0,   PACKET_SIZE)
                        nData   -=   1
                End   While

                mStream.Close()
                mStream.Dispose()
        End   Sub

[解决办法]
又见VB 帮顶接分!
[解决办法]
UP UP UP 抬起头
[解决办法]
up
[解决办法]
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim mStream As System.IO.MemoryStream
Dim nData As Integer = 40960
Dim iPtr As Integer
Dim PACKET_SIZE As Int16 = 4096
Dim readBuffer(PACKET_SIZE) As Byte

For iPtr = 0 To PACKET_SIZE - 1
readBuffer(iPtr) = 255
Next

mStream = New System.IO.MemoryStream
While nData > 0
mStream.Write(readBuffer, 0, PACKET_SIZE - 1)
nData -= 1
End While

'mStream.Flush()
mStream.SetLength(0)
mStream.Close()
mStream = Nothing

'强调进行垃圾回收
GC.Collect()
End Sub

对你的代码进行了点改动:
1.mStream.Write(readBuffer, 0, PACKET_SIZE - 1)
2. GC.Collect()

热点排行