2014-03-06 79 views
1

我有一個小問題,我的Windows商店應用程序。作爲後臺任務的問題可以從服務器獲取數據並將新數據插入到本地數據庫中,同時用戶可以導航到從該數據庫提取的頁面,當然應用程序會崩潰,因爲數據庫是鎖定,雖然這是一種罕見的情況,但確實發生了。多線程與SQLite在Windows商店應用程序

所以問題是我可以如何解決這個問題,以便一個連接或者等待另一個連接完成或者類似的事情以避免彼此衝突?

我正在使用sqlite-net作爲所有我的東西的SQL包裝類。有什麼建議麼?

回答

1

您應該嘗試啓用WAL(預寫日誌記錄)模式。它允許同時讀取和寫入。

http://www.sqlite.org/wal.html

+1

這是什麼'SQLiteConnectionStringBuilder'?因爲唯一出現的是'SQLiteConnectionString' – tyczj

+0

'System.Data.Sqlite' – EkoostikMartin

+0

System.Data似乎不存在用於Windows Store應用程序 – tyczj

2

EkoostikMartin是正確的。使用SQLite網,你會想做的事:

try { 
    db.Execute ("PRAGMA journal_mode = WAL;"); 
} catch (SQLiteException e) { 
    if (e.Result != SQLite3.Result.Row) 
     throw e; 
} 

(不知道是否在所有平臺上,需要捕捉,但在WP8,這是必要的,我因爲journal_mode PRAGMA返回一行,並執行呼叫在這種情況下拋出)