"Коллекция была изменена" - там, где она не была изменена - C#
Формулировка задачи:
Непойму что за глюканы творятся...
Код:
Как видите перед тем как делать
while (sitemapUrls.Count != sitemapUrlsChecks.Count) { var sitemapUrlsTmp = sitemapUrls; lock (sitemapUrlsTmp) { foreach (var url in sitemapUrlsTmp) { if (!sitemapUrlsChecks.Contains(url)) { if (url.Contains(startSiteUrl)) { DumpHRefs(url); sitemapUrlsChecks.Add(url); //добавляем в чекнутые } } } }//lock }
foreach
я занес коллекцию во временную переменнуюsitemapUrlsTmp
которая не меняется нигде больше! А все равно
Дополнительные сведения: Коллекция была изменена; невозможно выполнить операцию перечисления.
ps
где вычитал что нужно добавитьоператор lock
но после его появления ситуация не изменилась(((Решение задачи: «"Коллекция была изменена" - там, где она не была изменена»
textual
Листинг программы
var sitemapUrlsTmp = sitemapUrls;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д