我有这段代码:
public IEnumerable<ImportRecord> Parse()
{
var engine = new FileHelperAsyncEngine<Record>();
using (StreamReader reader = new StreamReader(this.stream))
using (engine.BeginReadStream(reader))
{
foreach (var record in engine)
{
yield return record.Convert(this.correlationId);
}
}
}
打开一个流,函数开始产生结果。
我的理解是可枚举状态机必须保持打开的流的状态导致某种开销?
是否存在不处理流的情况,例如,如果您这样做:Parse().Skip(10).Take(1);
您没有枚举整个序列?我的猜测是否定的,我会假设状态机会做某事,我不确定如果有人可以详细说明那是什么东西。