Является ли чтение XML с помощью LINQ-to-XML потокобезопасным?C#

Место общения программистов C#
Anonymous
Является ли чтение XML с помощью LINQ-to-XML потокобезопасным?

Сообщение Anonymous »

Под «потокобезопасностью» я подразумеваю: если два потока одновременно читают из одного и того же XDocument, возникнут ли проблемы?
Под «чтением» я имею в виду: код использует только неизменяющие операции, например прочитайте значение с помощью myXDocument.Root.Elements("SomeTag").Attribute("SomeAttribute").Value, но не изменяйте операции, такие как XElement.Add.
Почему я спрашиваю:
  • "Наивная" реализация будет потокобезопасной, поскольку выполняются только операции чтения.
  • Однако «оптимизированная» реализация может также использовать и изменять внутреннее состояние во время операций чтения.
Мне не удалось найти в документации явных гарантий потокобезопасности, но я мог что-то упустить. Судя по всему, документация раньше содержала обычное заявление об отказе от ответственности «статические общедоступные методы являются потокобезопасными, все остальное может не быть», но оно больше не присутствует в текущей версии.
В идеале ответ должен ссылаться на «официальный источник», либо на документацию .NET, либо на заявление/запись в блоге члена команды разработчиков .NET.

Подробнее здесь: https://stackoverflow.com/questions/798 ... hread-safe

Вернуться в «C#»