Вы используете двусмысленные термины.Сначала вы упоминаете бесконечный цикл, а затем упоминаете, что AddSerie
будет выполняться «бесконечно» [sic];Исходя из этого, я думаю, что проблема, о которой вы говорите, не в том, что ForEach
продолжается и продолжается вечно (как подразумевается / заявлено), а в том, что AddSerie
делает что-то, что, кажется, принимает навсегда.
Это может даже равняться тому, что упомянул Джои: если вы добавляете элемент в список , а в контексте вызова ForEach
, то вы всегда на один шаг позадив завершении, и, следовательно, не будет «завершено».Однако получение OutOfMemoryException
на самом деле происходит относительно быстро , если , скажем, AddSerie
ничего не делает, кроме этого - может потребоваться больше времени, чтобы добраться до такой точки , если AddSerie
является относительно трудоемким методом.Опять же, вы можете никогда не получить такое исключение (в обсуждаемом контексте) , если AddSerie
просто берет возраст собаки, чтобы завершить без , способствующим увеличению длины списка.
Отображение кода AddSerie
может оказаться наиболее полезным при определении фактической проблемы .