IEnumerator.MoveNext()的实现可以包含一个长时间运行的进程吗?

时间:2014-06-18 00:30:02

标签: ienumerator

IEnumerator.MoveNext()的实施预计会相对较快吗?或者,如果"移动到下一个项目" 包括磁盘IO,Web请求或其他可能长时间运行的操作?

例如,我正在处理一个处理文档的项目,并想要以IDocumentSource的形式抽象对文档的访问。 IDocumentSource的一些实现可以简单地从本地文件系统中提取文档,其中其他人可以在打开文档之前将文档从网络服务器下载到临时位置。在这种情况下,MoveNext()将关闭并删除以前的临时文件,然后下载并打开下一个要处理的文件。

1 个答案:

答案 0 :(得分:0)

没有关于MoveNext()的预期性能的指导原则,例如,与属性获取者存在的性能不同。

你看起来很合理。但是,在类/方法文档中包含关于行为的注释是明智的。