Tôi có báo cáo kết quả Khóa sau:Biến khóa có nên được khai báo dễ bay hơi không?
private readonly object ownerLock_ = new object();
lock (ownerLock_)
{
}
Tôi có nên sử dụng volatile từ khóa cho biến khóa của tôi?
private readonly volatile object ownerLock_ = new object();
Trên MSDN tôi thấy nó thường được sử dụng cho trường được truy cập không khóa, vì vậy nếu tôi sử dụng Khóa, tôi không cần sử dụng dễ bay hơi?
Từ MSDN:
Các modifier dễ bay hơi thường được sử dụng cho một lĩnh vực được truy cập bởi nhiều chủ đề mà không cần sử dụng câu lệnh khóa để serialize truy cập.
Chúng ta cần nhiều ngữ cảnh hơn thế này để trả lời câu hỏi. Khóa này tồn tại ở đâu trong mối quan hệ với các đối tượng sử dụng khóa? –
Đó chắc chắn là chủ đề an toàn vì nó hiện đang tồn tại. Bạn không thể đảm bảo khi bạn thêm mã trong khối khóa {}. –
Bạn không cần phải khóa một đối tượng 'readonly' ... trong đó nó là' readonly' ... – NominSim