Указанный дубликат довольно старый. Это не неточно - но это предшествует PLINQ.
MS Документация: Потенциальные ловушки с PLINQ
Избегайте вызовов не поточнобезопасных методов
Запись в не поточнобезопасные методы экземпляра из запроса PLINQ может привести к повреждению данных, которое может или не может go не обнаружено в вашей программе. Это также может привести к исключениям. В следующем примере несколько потоков будут пытаться вызвать метод FileStream.Write одновременно, который не поддерживается классом.
...
Предпочитать ForAll для ForEach, когда это возможно
Хотя PLINQ выполняет запрос в нескольких потоках, если вы используете результаты в foreach l oop (для каждого в Visual Basi c), тогда результаты запроса должны быть объединены обратно в один поток и последовательно доступны для перечислителя. В некоторых случаях это неизбежно; однако, когда это возможно, используйте метод ForAll, чтобы каждый поток мог выводить свои собственные результаты, например, путем записи в потокобезопасную коллекцию, такую как System.Collections.Concurrent.ConcurrentBag.
Та же проблема применима Parallel.ForEach. Другими словами, source.AsParallel (). Where (). ForAll (...) должен быть строго предпочтен Parallel.ForEach (source.AsParallel (). Where (), ...).
...
Помните о проблемах схожести потоков
Некоторые технологии, например, совместимость COM для компонентов однопотоковой квартиры (STA), Windows форм, и Windows Presentation Foundation (WPF), наложить ограничения по схожести потоков, которые требуют выполнения кода в указанном потоке c. Например, в Windows Forms и WPF доступ к элементу управления возможен только в том потоке, в котором он был создан. Если вы пытаетесь получить доступ к общему состоянию элемента управления Windows Forms в запросе PLINQ, возникает исключение, если вы работаете в отладчике. (Этот параметр можно отключить.) Однако, если ваш запрос используется в потоке пользовательского интерфейса, вы можете получить доступ к элементу управления с foreach l oop, который перечисляет результаты запроса, поскольку этот код выполняется только в одном потоке.
...