Тъй като DateTime
не може да бъде деклариран като непостоянен, това правилно ли е?:
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, така че да мога да избегна повторното създаване на елемента само защото кешът е запазил стойността за няколко милисекунди :Д
Благодаря предварително.
InterlockedExchange
е начинът да отидете тук. - person Moo-Juice   schedule 28.01.2011