我正在编写一个Windows应用商店应用,它从服务器检索一些信息并在本地显示。为了提高应用程序的“响应能力”,我决定将查询结果存储在本地应用程序数据存储中。在提交请求之前,它将检查本地存储以获取已保存的响应并首先显示该请求。我考虑了2个选项SQLite和普通文件I / O,我选择了后者。在我实现它时,我发现可能存在同时读取和写入同一文件的情况。我正在使用FileIO类,更具体地说是WriteTextAsync和ReadTextAsync方法。 FileIO是否帮助我们处理并发读取和写入同一文件,例如在执行读取时阻止读取?
顺便说一句,如果我使用SQLite而不是FileIO会更快吗? SQLite能很好地处理这种情况吗?
非常感谢!
答案 0 :(得分:0)
通常,与文件IO一起使用并发性会产生相反的效率,因为硬盘的旋转特性,除非你有RAID。因此,并发读/写肯定会降低性能。但是,最好通过异步调用文件IO api将文件IO调用与UI线程分开。
请注意,UI组件不是线程安全的,因此您需要同步文件IO线程的返回。