私は次のコードを持っています:
private static object _dbLock = new object();
public static void LoadData()
{
lock (_dbLock)
{
//Load data from the database
}
}
public static string ReadData(Guid key)
{
lock (_dbLock)
{
//Lookup key in data and return value
}
}
データベースからロードされている間、他の人にデータを読み取らせたくないので、に入れlock
ますReadData
。ただし、現時点では、複数の人ReadData
が同時に電話をかけた場合、一度に実行できる電話は1つだけです。
実行中にリーダーへの同時呼び出しを許可するReadData
が、リーダーをブロックする方法はありLoadData
ますか?