Почему цикл Parallel.ForEach завершается с OperationCancelledException при использовании GetConsumableEnumerable?
//вне функции статический BlockingCollection _collection = новый BlockingCollection(); вар т = Task.Factory.StartNew(Производитель); Parallel.ForEach(_collection.GetConsumingEnumerable(), item => Console.WriteLine("Обработано {0}", item)); Console.WriteLine("ОБРАБОТКА ЗАВЕРШЕНА"); public static void Producer() { данные var = Enumerable.Range(1, 1000); foreach (var i в данных) { _collection.Add(я); Console.WriteLine("Добавлено {0}",i); } Console.WriteLine("Добавление завершено"); _collection.CompleteAdding(); }
Почему цикл Parallel.ForEach завершается с OperationCancelledException при использовании GetConsumableEnumerable? //вне функции статический BlockingCollection _collection = новый BlockingCollection(); вар т = Task.Factory.StartNew(Производитель); Parallel.ForEach(_collection.GetConsumingEnumerable(), item => Console.WriteLine("Обработано {0}", item)); Console.WriteLine("ОБРАБОТКА ЗАВЕРШЕНА"); public static void Producer() { данные var = Enumerable.Range(1, 1000); foreach (var i в данных) { _collection.Add(я); Console.WriteLine("Добавлено {0}",i); } Console.WriteLine("Добавление завершено"); _collection.CompleteAdding(); }
var items = Enumerable.Range(0, 200); Parallel.ForEach(элементы, элемент => Console.WriteLine(элемент)); Элементы в консоли располагаются в случайном порядке. Я не уверен, как перечисляет Parallel.ForEach, но похоже, что...
У меня есть параллельный foreach для нескольких вызовов API. API вернет некоторые данные, и я смогу их обработать. Допустим, из внешнего интерфейса я вызываю метод ProcessInsu , и вдруг пользователь передумал и перешел на другую страницу. (Должна...