2014-06-18 1 views
3

IEnumerator.MoveNext()의 구현은 상대적으로 빠를 것으로 예상됩니까? 또는 "다음 항목으로 이동"에 디스크 IO, 웹 요청 또는 기타 잠재적으로 장기간 실행되는 작업이 포함되어 있으면 괜찮습니까?IEnumerator.MoveNext()의 구현에 장시간 실행되는 프로세스가 포함되어 있어도 괜찮습니까?

예를 들어 나는 문서를 처리하는 프로젝트에서 작업하고 있으며 문서에 대한 액세스를 IDocumentSource으로 추상화하려고합니다. IDocumentSource의 일부 구현은 단순히 로컬 파일 시스템에서 문서를 가져올 수 있습니다. 다른 시스템에서는 문서를 열기 전에 웹 서버에서 임시 위치로 문서를 다운로드 할 수 있습니다. 이 경우 MoveNext()은 이전 임시 파일을 닫고 삭제 한 다음 처리 할 다음 파일을 다운로드하여 엽니 다.

+0

"빠른"것이 아니라면 나는 상대적으로 혼란 스러울 것이다. 그러나 그런 부작용에 훨씬 더. – user2864740

+0

네, 이에 동의합니다. IEnumerator에 대한 문서화 된 모범 사례가 아니더라도 –

답변

0

예상되는 성능은 예를 들어 속성 ​​가져 오기 도구와 달리 MoveNext()이 아닙니다.

너는 합리적으로 보인다. 그래도 클래스/메소드 문서에서 동작에 대한 참고 사항을 포함하는 것이 좋습니다.

관련 문제