好吧,我已經使用了相當多的鎖,但是我從未有過這種情況。我有包含用於修改相同MSACCESS數據庫代碼兩個不同的類:爲什麼鎖定一個公共對象是一個壞主意
public class DatabaseNinja
{
public void UseSQLKatana
{
//Code to execute queries against db.TableAwesome
}
}
public class DatabasePirate
{
public void UseSQLCutlass
{
//Code to execute queries against db.TableAwesome
}
}
這是一個問題,因爲事務數據庫不能並行地執行,並且這些方法(UseSQLKatana和UseSQLCutlass)由稱爲不同的線程。
在我的研究中,我看到它是使用公共對象作爲鎖對象的不良做法因此,如何鎖定這些方法以避免它們串聯運行?答案僅僅是讓這些方法在同一個類中? (在我的真實代碼中實際上並不那麼簡單)
我猜db.TableAwesom是一個公共表。你能創建一個訪問這個表的公共方法,並使用你的私有鎖嗎? – jp2code 2011-05-24 14:55:44