【发布时间】:2010-03-09 14:35:43
【问题描述】:
我在 Compact Framework 上有一个应用程序,它有一些大型嵌入式资源(其中一些是几兆字节)。我正在调用assembly.GetManifestResourceStream(...),它返回一个Stream 对象。但是,我注意到在某些设备上,此调用不仅需要相当长的时间,还会导致设备耗尽可用内存。最终我使用反射器在紧凑框架上查看此方法的代码,它使用内部方法获取资源数据的byte[]。然后它返回包裹在 MemoryStream 中的数据。
有什么方法可以在不使用此调用的情况下检索资源,因为它总是将所有内容读入内存?理想情况下,我想使用Stream,我可以随机访问它,而无需将整个内容读入内存(类似于FileStream 的工作方式)。如果我可以简单地在程序集上打开一个FileStream 并在适当的偏移量处开始读取,那将会非常简洁,但我怀疑这是嵌入资源的方式。
【问题讨论】:
-
当你的目标是内存有限的设备时,为什么你有这么大的资源?
-
我可以毫无问题地轻松使用有限内存设备上的资源,因为我已经能够有效地按需使用我需要的部分。
标签: c# compact-framework .net-2.0