private DateTime _time;
public DateTime Time
{
get
{
Thread.MemoryBarrier();
return _time;
}
set
{
_time = value;
Thread.MemoryBarrier();
}
}
Доступ к этому свойству можно получить из разных потоков, поэтому я хочу, чтобы они всегда получали последнюю версию без конфликтов при использовании (
У меня есть коллекция сложносоздаемых элементов, каждый из которых у одного есть свойство DateTime с именем CreationTime, указывающее, когда этот элемент был создан. Он инициализируется как DateTime.UtcNow.
Каждый раз, когда осуществляется доступ к элементу, это свойство обновляется до DateTime.UtcNow.
Существует поток, который своевременно выполняется с помощью потокового таймера, который проверяет, соответствует ли (DateTime.UtcNow + 1 час) > item.CreationTime, и если это правда, он удаляет элемент.
Я хочу быть уверенным, что когда «поток удаления» попадет в коллекцию, все элементы будут иметь дату и время последнего «последнего доступа», чтобы я мог избегайте повторного создания элемента только потому, что кеш хранил значение в течение нескольких миллисекунд.
Поскольку DateTime нельзя объявить как изменчивое, верно? [code]private DateTime _time; public DateTime Time { get { Thread.MemoryBarrier(); return _time; } set { _time = value; Thread.MemoryBarrier(); } } [/code] Доступ к этому свойству можно получить из разных потоков, поэтому я хочу, чтобы они всегда получали последнюю версию без конфликтов при использовании ([code]lock[/code]). РЕДАКТИРОВАТЬ: [list] [*]У меня есть коллекция сложносоздаемых элементов, каждый из которых у одного есть свойство DateTime с именем CreationTime, указывающее, когда этот элемент был создан. Он инициализируется как DateTime.UtcNow. [*]Каждый раз, когда осуществляется доступ к элементу, это свойство обновляется до DateTime.UtcNow. [*]Существует поток, который своевременно выполняется с помощью потокового таймера, который проверяет, соответствует ли (DateTime.UtcNow + 1 час) > item.CreationTime, и если это правда, он удаляет элемент. [/list] Я хочу быть уверенным, что когда «поток удаления» попадет в коллекцию, все элементы будут иметь дату и время последнего «последнего доступа», чтобы я мог избегайте повторного создания элемента только потому, что кеш хранил значение в течение нескольких миллисекунд. :D