IEnumerator.MoveNext()的实现可以包含长时间运行的过程



是否期望IEnumerator.MoveNext()的实现相对较快?或者如果"移动到下一个项目"包括磁盘IO, web请求或其他可能长时间运行的操作?

例如,我正在一个处理文档的项目上工作,并且想要将对文档的访问抽象为IDocumentSourceIDocumentSource的一些实现可以简单地从本地文件系统拉文档,在其他地方可以从web服务器下载文档到临时位置打开它们之前。在这种情况下,MoveNext()将关闭并删除之前的临时文件,然后下载并打开下一个文件进行处理。

没有关于MoveNext()预期性能的指导方针,例如,不像存在于属性getter中的指导方针。

你的方法看起来很合理。尽管如此,在类/方法文档中包含一个关于行为的说明是明智的。

最新更新