C# WP7上的二进制读取器和流性能

C# WP7上的二进制读取器和流性能,c#,windows-phone-7,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应用程序

问题是

如果必须将BinaryReader打开到文件,有没有比打开资源流更有效的方法

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


我正在为WP7应用程序使用数据库(codeplex)。该应用程序需要附带一个已在程序集中的大型数据库。目前,我正在尝试使用Sterling的Restore()从保存以前保存的文件(Backup())创建数据库。目前,我正在将备份文件设置为应用程序中的“资源”,如上所示。Sterling dtabase引擎需要二进制读取器通过Restore()加载数据。目前,恢复时间太长。我在中开始了一个讨论,但在堆栈中发布了一个讨论,只是想看看我是否可以比资源流做得更好。

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

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

虽然我自己没有尝试过,但使用内容优先于资源显然会对图像的性能产生影响,我假设,对于其他二进制文件:

实际上,测试表明,在我的例子中,模拟器使用“内容”的构建操作取3:19,使用“资源”取2:08。很明显,我正在处理一个大文件。它可能是一样的,但我很想在一个真正的设备上听到它们之间的区别哈哈。。当然但这必须等到我有20分钟的空闲时间:pI不得不放弃在手机中使用Sterling,因为恢复到独立存储的速度太慢(一个小数据库需要几分钟),所以最后我使用Sterling来帮助生成一个代码文件,加载内存中的所有对象!我的意思是它在代码中显式地实例化对象。。。表演很棒!新Uri后面缺少一个括号,但我无法编辑,因为它说“编辑必须至少有6个字符;这篇文章还有什么需要改进的吗?”。