【发布时间】:2013-12-02 08:30:39
【问题描述】:
我在一个大项目的代码中看到了这样的模式:
try {} finally { _someLock.EnterWriteLock(); }
try
{
...
}
finally
{
_someLock.ExitWriteLock();
}
最后进入 lock in 有什么意义吗?
====================
更新: 我找到了这种模式的来源。
http://chabster.blogspot.com/2013/07/a-story-of-orphaned-readerwriterlockslim.html 。你能说什么?
【问题讨论】:
-
有一个空的
try块? IMO ...不,没有意义(并且可能会被编译器优化掉)。如果try块不是空的,那么它可能是一些疯狂的逻辑程序流(!)的一部分。 -
@Adriano 第一次尝试是 emty,第二次包含文件删除逻辑等等
-
第一个没有意义,但你已经知道了,对吧?
-
那么 IMO 就没用了。 AFAIK
finally块不会启用任何特殊的编译器/JIT/CLR 行为。 -
@flup 是的,但我很惊讶......我想 - 也许我不知道什么......
标签: c# .net multithreading locking