我使用TCP套接字将每个文件从pc发送到手机,每个文件大约10 Mbs。 在手机端我收到的数据是这样的:套接字数据传输 - 内存不足异常
Dim B As Byte() = New Byte(Socket.ReceiveBufferSize - 1) {}
Me.Args.SetBuffer(B, 0, Socket.ReceiveBufferSize)
Me.Socket.ReceiveAsync(Me.Args)
ReceiveBufferSize属性设置为30000000 这是我读的方式:
Dim R As Byte() = New Byte(Me.Args.BytesTransferred - 1) {}
Dim s As New MemoryStream(Me.Args.Buffer)
Me.Args.SetBuffer(0, 0)
s.Read(R, 0, ntpData.Length)
s.Dispose()
这个过程需要一个巨大的内存容量(约300Mbs),因此我无法在低价设备上运行该应用程序,该设备的内存使用限制为180Mbs。 每当手机接收到某个东西时,我都不能.Dispose()
,因为它会抛出一个OjbectDisposed异常。 如何释放内存?
我在应用程序中“评论了其他程序”,是的,我很确定这是问题所在。不过,我会尝试第一个解决方案,如果还不够,我还会去第二个解决方案。谢谢 – fillobotto 2013-05-02 10:26:49
在用户界面中显示大量图像是高内存使用率的常见原因,因此请留意。 – 2013-05-02 10:36:44
当然,但我没有显示任何图像。问题是ReceiveBufferSize太大,但无法弄清楚如何在块中执行ReceiveAsync。 – fillobotto 2013-05-02 10:59:39