我有以下代码:
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
同时打电话,一次只能打一个电话。
有没有一种方法可以允许同时调用ReadData
但LoadData
在运行时阻止阅读器?