Mam następujący kod:blokady, która pozwoli wielu czytelników w C#
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
}
}
nie chcę, aby ludzie do odczytu danych, podczas gdy jest ładowany z bazy danych, więc kładę lock
w ReadData
. Jednak w tej chwili, jeśli wiele osób zadzwoni pod numer ReadData
w tym samym czasie, tylko jedno połączenie może zostać uruchomione jednocześnie.
Czy jest sposób, w jaki mogę zezwolić na jednoczesne połączenia z ReadData
, ale czytniki bloków są uruchamiane, gdy LoadData
jest uruchamiany?
Dobrze wiedzieć. Fajne rzeczy! – joshgo
Wygląda idealnie! Pomyślałem, że będzie coś takiego w .NET Framework. –