如果IEnumerable中有锁,会发生什么

时间:2015-03-13 22:18:33

标签: c# ienumerable

我想知道如果IEnumerable方法中存在锁定将会发生什么 例如这样的程序:

IEnumerable<int> Foo()
{
     ....
     lock(...)
     {
         yield return ...;
     }
}

由于IEnumerable是延迟执行的,并且不会立即生成所有结果,因此锁在方法内部会做什么?它会在每个元素生成后解锁还是会保持锁定,直到IEnumerable对象被GC为止?或其他什么?

0 个答案:

没有答案