`
talin2010
  • 浏览: 503231 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

15.12 The lock statementreleases the lock.

阅读更多
lock ( expression ) embedded-statement
The expression of a lock statement must denote a value of a reference-type.
No implicit boxing conversion
(§13.1.5) is ever performed for the expression of a lock statement, and
thus it is a compile-time error for the
expression to denote a value of a value-type.
A lock statement of the form
lock (x) .
where x is an expression of a reference-type, is precisely equivalent to
System.Threading.Monitor.Enter(x);
try {
.
}
finally {
System.Threading.Monitor.Exit(x);
}
except that x is only evaluated once.
[Example: The System.Type object of a class can conveniently be used as the
mutual-exclusion lock for
static methods of the class. For example:
class Cache
{
public static void Add(object x) {
lock (typeof(Cache)) {
.
}
}
public static void Remove(object x) {
lock (typeof(Cache)) {
.
}
}
}
end example]
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics