Windows FileIO的并发性

时间:2013-05-26 18:08:46

标签: c# sqlite file-io concurrency windows-store-apps

我正在编写一个Windows应用商店应用,它从服务器检索一些信息并在本地显示。为了提高应用程序的“响应能力”,我决定将查询结果存储在本地应用程序数据存储中。在提交请求之前,它将检查本地存储以获取已保存的响应并首先显示该请求。我考虑了2个选项SQLite和普通文件I / O,我选择了后者。在我实现它时,我发现可能存在同时读取和写入同一文件的情况。我正在使用FileIO类,更具体地说是WriteTextAsync和ReadTextAsync方法。 FileIO是否帮助我们处理并发读取和写入同一文件,例如在执行读取时阻止读取?

顺便说一句,如果我使用SQLite而不是FileIO会更快吗? SQLite能很好地处理这种情况吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

通常,与文件IO一起使用并发性会产生相反的效率,因为硬盘的旋转特性,除非你有RAID。因此,并发读/写肯定会降低性能。但是,最好通过异步调用文件IO api将文件IO调用与UI线程分开。

请注意,UI组件不是线程安全的,因此您需要同步文件IO线程的返回。