c# - iOS:流式传输大文件

标签 c# .net ios xamarin.ios filestream

我想从iOS设备的磁盘连续流式传输游戏的大数据文件。
问题是,是否有人在使用System.IO.FileStream之前已经流式传输了此类文件(20MB的块)。我没有自己做过iOS设备的测试,我不希望下次再得到它。

有两个问题:

  • 是否在不完全加载文件的情况下流传输了文件(我期望从流执行的行为,但是我不确定MonoTouch的处理方式),以及流传输时的内存使用情况如何?
  • 加载过程的性能如何,尤其是一次加载不同文件时?

  • 感谢您提供任何信息。

    最佳答案

    MonoTouch基类库(BCL)来自Mono,因此很多代码都可以作为开源代码使用。在 FileStream 的情况下,您可以在github上查看代码。

    是否在不完全加载文件的情况下对文件进行了流传输(我期望从流中获取的行为,但是我不确定MonoTouch的处理方式)

    没错,它不会完全加载。您将控制正在阅读的内容。

    以及流式传输时的内存使用情况如何?

    上面的链接显示默认缓冲区大小设置为 8192 字节(8k),但几个构造函数允许您使用其他大小(如果需要)。

    以及流式传输时的内存使用情况如何?

    但是该缓冲区是内部缓冲区。当您调用诸如 Read 之类的方法时,您将提供自己的缓冲区,这样您将再次控制正在使用的内存量。

    加载过程的性能如何,尤其是一次加载不同的文件时?

    这很难预测,并且在很大程度上取决于您的应用程序(例如,文件数,所需的总内存...)。如果需要,可以使用 FileStream BeginRead异步方法来获得更好的性能。

    关于c# - iOS:流式传输大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9008003/

    相关文章:

    c# - 在 Visual C# 2010 中将 DLL 嵌入到 .exe 中

    ios - 带有 URL 的 NSURLSession downloadTask 返回 nil

    c# - FlatBuffers:使用 union 发送多种数据包类型

    c# - 我的自动增量不是从1开始

    c# - 为我没有设置为 null 的对象释放内存

    c# - 夏令时规则和转换

    ios - 我从 NSString 的 'componentsSeparatedByString' 方法得到了奇怪的输出

    iOS Facebook 权限

    c# - 如何获取所有正在运行的线程的列表

    c# - 在当前不需要时实现 INotifyPropertyChanged 是一种好习惯吗?