0

有没有办法,而不是锁定一个对象,向访问它的人显示它的临时副本?

4

2 回答 2

2

使用 TransactionScope 包装使用该对象的代码,该对象在您的情况下是关键资源,并将 IsolationLevel 设置为 Snapshot。

这样,任何试图访问同一对象的人都应该在编辑对象之前看到该值,直到事务完成。

于 2013-03-01T14:29:17.767 回答
0

如果使用volatile修饰符,则可以避免临时副本。

系统总是在请求时读取 volatile 对象的当前值,即使之前的指令要求来自同一对象的值。此外,对象的值在赋值时立即写入。volatile修饰符通常用于被多个线程访问而不使用lock语句序列化访问的字段。使用 volatile 修饰符可确保一个线程检索另一个线程写入的最新值。

于 2013-03-01T14:34:19.737 回答