Ich habe den folgenden Code:sperren, die mehrere Leser in C# ermöglicht
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
}
}
Ich möchte nicht, dass Menschen zu ermöglichen, die Daten zu lesen, während sie aus der Datenbank geladen wird ist, so habe ich eine lock
in ReadData
. Wenn jedoch mehrere Personen gleichzeitig ReadData
anrufen, kann nur ein Anruf gleichzeitig ausgeführt werden.
Gibt es eine Möglichkeit, ich gleichzeitige Anrufe an ReadData
zulassen kann, aber Leser blockieren, wenn LoadData
ausgeführt wird?
Gut zu wissen. Cooles Zeug! – joshgo
Sieht perfekt aus! Ich dachte, dass es so etwas in .NET Framework geben würde. –