Tôi có đoạn mã sau:Khóa này sẽ cho phép nhiều độc giả trong 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
}
}
Tôi không muốn để cho phép mọi người đọc dữ liệu trong khi nó đang được nạp từ cơ sở dữ liệu, vì vậy tôi đặt một lock
trong ReadData
. Tuy nhiên, ngay bây giờ nếu nhiều người gọi ReadData
cùng một lúc, chỉ một cuộc gọi có thể chạy cùng một lúc.
Có cách nào tôi có thể cho phép các cuộc gọi đồng thời tới ReadData
nhưng chặn người đọc khi LoadData
đang được chạy?
Điều cần biết. Những thứ tuyệt vời! – joshgo
Có vẻ hoàn hảo! Tôi đã tìm ra một thứ như thế này trong .NET Framework. –