Có rất nhiều bài viết về lớp ReaderWriterLockSlim cho phép đọc nhiều và viết đơn. Tất cả những điều này (ít nhất là tôi đã tìm thấy) cho biết làm thế nào để sử dụng nó mà không có nhiều giải thích tại sao và làm thế nào nó hoạt động. Mẫu mã tiêu chuẩn là:.NET ReaderWriterLockSlim issues
lock.EnterUpgradeableReadLock();
try
{
if (test if write is required)
{
lock.EnterWriteLock();
try
{
change the resourse here.
}
finally
{
lock.ExitWriteLock();
}
}
}
finally
{
lock.ExitUpgradeableReadLock();
}
Câu hỏi đặt ra là: nếu khóa có thể nâng cấp chỉ cho phép một chuỗi duy nhất để vào phần, thì tại sao tôi nên gọi phương thức EnterWriteLock? Điều gì sẽ xảy ra nếu tôi không? Hoặc điều gì sẽ xảy ra nếu thay vì EnterUpgradeableReadLock, tôi sẽ gọi EnterWriteLock và sẽ ghi vào tài nguyên mà không cần sử dụng khóa nâng cấp?
Xin cảm ơn tất cả! Khi tôi có thể chấp nhận một câu trả lời duy nhất, tôi đã chọn (chủ quan) cái này là thông tin nhất. – Kamarey