Como DateTime
no pueden ser declarados como volátil, es este derecho ?:DateTime volátil
private DateTime _time;
public DateTime Time
{
get
{
Thread.MemoryBarrier();
return _time;
}
set
{
_time = value;
Thread.MemoryBarrier();
}
}
Esa propiedad se podría acceder desde diferentes hilos, por lo que quiero asegurar que incluyen siempre la última versión, sin el uso de contención (bloquear).
EDIT:
- tengo una colección de difíciles de crear elementos, cada uno tiene una propiedad DateTime llamado CreationTime, lo que indica que se creó este artículo. Se inicializa a DateTime.UtcNow.
- Cada vez que se accede a un elemento, esa propiedad se actualiza a DateTime.UtcNow.
- Hay un hilo, que se ejecuta de manera oportuna en un temporizador con hebras que comprueba si (DateTime.UtcNow + 1 hora)> item.CreationTime, si es verdadero, elimina el elemento.
Quiero asegurarme de que cuando el "hilo de eliminación" entra en la colección, todos los elementos tengan su último "último acceso" DateTime, así puedo evitar crear el elemento nuevamente solo porque un caché contenía el valor por un par de milisegundos: D
Gracias de antemano.
No estoy seguro si lo que estás tratando de hacer sentido. ¿Cómo defines la última versión? – CodesInChaos
He actualizado el post – vtortola
Teniendo en cuenta que va a implementar una memoria caché de objetos que elimina un-usado de más de un período de tiempo determinado, creo que la solución 'InterlockedExchange' es el camino a seguir aquí. –