WP7上的BinaryReader和Stream性能

时间:2011-05-12 01:00:18

标签: c# windows-phone-7

问题......

如果您必须将BinaryReader打开到文件中,是否有更高效的方法来打开流到资源?

 System.IO.Stream myFileStream = Application.GetResourceStream(new Uri @"/MyApp;component/sdb.data", UriKind.Relative)).Stream;
 BinaryReader binaryReader = new BinaryReader(myFileStream);

所有其他的......

我正在为WP7应用使用Sterling数据库(codeplex)。该应用程序需要在程序集内部附带一个大型数据库。目前,我正在尝试使用Sterling的Restore()从包含以前保存的文件(Backup())创建数据库。目前,我正在获取备份文件并将其设置为应用中的“资源”,如上所示。 Sterling dtabase引擎需要BinaryReader通过Restore()加载数据。目前,恢复只需要太长时间。我在Sterling Discussions开始讨论,但是在Stack上发布,只是为了看看我是否能比资源流更好。

1 个答案:

答案 0 :(得分:1)

看起来您将数据库作为资源嵌入 - 您是否尝试将文件上的Build Action属性设置为Content,然后像这样加载它:

System.IO.Stream myFileStream = Application.GetResourceStream(new Uri(@"/component/sdb.data", UriKind.Relative)).Stream;

虽然我自己没有尝试过,但使用Content over Resource显然会对图像产生性能影响,我认为,对于其他二进制文件:http://www.windowsphonegeek.com/tips/wp7-working-with-images-content-vs-resource-build-action