2013-05-26 45 views
0

我在寫一個Windows應用商店應用程序,從服務器檢索一些信息並在本地顯示它。爲了增加應用程序的「響應性」,我決定將查詢結果存儲在本地應用程序數據存儲中。在提交請求之前,它將檢查本地商店中保存的響應並首先顯示。我考慮了2個選項SQLite和普通文件I/O,我選擇了後者。在我實施它的過程中,我發現可能會有相同的文件被同時讀寫的情況。我正在使用FileIO類,更具體地說是WriteTextAsync和ReadTextAsync方法。 FileIO是否幫助我們處理同時讀取和寫入同一個文件,例如在讀取時阻止讀取?併發與Windows FileIO

順便說一句,如果我使用SQLite而不是FileIO,會更快嗎? SQLite是否處理好這種情況?

非常感謝!

回答

0

由於硬驅動器的自旋特性,除非使用RAID,否則通常使用文件IO的併發性來提高計算效率。所以併發讀/寫肯定會降低性能。但是,通過異步調用文件IO api將文件IO調用與UI線程分開是個好主意。

請注意,UI組件不是線程安全的,因此您需要同步文件IO線程的返回。

+0

謝謝你的回答。使用FileIO實現似乎更麻煩,所以我認爲我最好換成sqlite。 – hanlindev

+0

我可能是錯的,但sqlite是一個文件系統數據庫,你可能最終會遇到同樣的問題。 – Mat