Như DateTime
không thể được khai báo là không ổn định, là quyền này ?:dễ bay hơi DateTime
private DateTime _time;
public DateTime Time
{
get
{
Thread.MemoryBarrier();
return _time;
}
set
{
_time = value;
Thread.MemoryBarrier();
}
}
Đó tài sản có thể được truy cập từ chủ đề khác nhau, vì vậy tôi muốn đảm bảo họ nhận được luôn là phiên bản mới nhất, mà không cần sử dụng tranh (Khóa).
EDIT:
- Tôi có một bộ sưu tập các khó tạo ra các mục, mỗi người có một tài sản DateTime tên CreationTime, cho thấy khi mặt hàng này đã được tạo ra. Nó được khởi tạo thành DateTime.UtcNow.
- Mỗi khi một mục được truy cập, thuộc tính đó được cập nhật thành DateTime.UtcNow.
- Có một chuỗi, thực thi theo thời gian kịp thời trong bộ hẹn giờ có luồng để kiểm tra xem (DateTime.UtcNow + 1 hour)> item.CreationTime, nếu đúng nó sẽ xóa mục đó.
Tôi muốn đảm bảo rằng khi "chuỗi xóa" được đưa vào bộ sưu tập, tất cả các mục đều có "Thời gian truy cập cuối cùng" mới nhất trên đó, vì vậy tôi có thể tránh tạo lại mục đó chỉ vì bộ nhớ cache đã giữ giá trị cho một vài phần nghìn giây: D
Cảm ơn bạn trước.
Không chắc chắn nếu những gì bạn đang cố gắng làm có ý nghĩa. Làm thế nào để bạn xác định phiên bản mới nhất? – CodesInChaos
Tôi đã cập nhật bài đăng – vtortola
Do bạn đang triển khai bộ nhớ cache loại bỏ các đối tượng không được sử dụng cũ hơn một khoảng thời gian cụ thể, tôi nghĩ giải pháp 'InterlockedExchange' là cách để đi đến đây. –