MonoTouch - WebRequest memory leak and crash?

后端 未结 1 1258
遥遥无期
遥遥无期 2021-01-05 17:59

I\'ve got a MonoTouch app that does an HTTP POST with a 3.5MB file, and it is very unstable on the primary platforms that I test on (iPhone 3G with OS 3.1.2 and iPhone 4 wit

相关标签:
1条回答
  • 2021-01-05 18:45

    I think you should read in your file 1 KB (or some arbitrary size) at a time and write it to the web request.

    Code similar to this:

    byte[] buffer = new buffer[1024];
    int bytesRead = 0;
    using (FileStream fileStream = File.OpenRead("YourFile.txt"))
    {
        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
        {
            httpPostStream.Write(buffer, 0, bytesRead);
        }
    }
    

    This is off the top of my head, but I think it's right.

    This way you don't have an extra 3MB floating around in memory when you don't really need to. I think tricks like this are even more important on iDevices (or other devices) than on the desktop.

    Test the buffer size too, a larger buffer will get you better speeds up to a point (I remember 8KB being pretty good).

    0 讨论(0)
提交回复
热议问题