DateTime
のような揮発性のDateTime使用競合せずに揮発性として宣言することはできません、この権利は?:ある
private DateTime _time;
public DateTime Time
{
get
{
Thread.MemoryBarrier();
return _time;
}
set
{
_time = value;
Thread.MemoryBarrier();
}
}
プロパティは異なるスレッドからアクセスすることができることを
ので、私は、彼らは常に最新バージョンを取得確保したいです、(ロック)。
EDIT:
- 私はハード・ツー・作成したアイテムのコレクションを持って、それぞれがこの項目が作成されたかを示す、CREATIONTIMEという名前のDateTimeプロパティを持っています。 DateTime.UtcNowに初期化されます。
- アイテムにアクセスするたびに、そのプロパティはDateTime.UtcNowに更新されます。
- (DateTime.UtcNow + 1 hour)> item.CreationTimeをチェックするスレッドタイマーでタイムリーに実行されるスレッドがあります(trueの場合、アイテムを削除します)。
「削除スレッド」がコレクションに入ったとき、すべてのアイテムに最新の「最終アクセス」のDateTimeがあることを確認したいので、キャッシュが数ミリ秒間の値:D
ありがとうございます。
あなたがしようとしていることが意味をなさないかどうかはわかりません。どのように最新のバージョンを定義しますか? – CodesInChaos
投稿を更新しました – vtortola
特定の期間よりも古い未使用のオブジェクトを削除するキャッシュを実装しているとすれば、ここではInterlockedExchangeの解決策があると思います。 –