Общий XElement как SiteMap - PullRequest
       12

Общий XElement как SiteMap

1 голос
/ 02 июня 2009

У меня есть пользовательская CMS, в которой я использую статический XElement в качестве карты сайта. Когда на карте происходят обновления, я синхронизирую потоки писателя, но ничего не делаю с читателями, просто позволяя им захватывать XElement, когда им это нужно.

При тестировании я думал, что если бы я перечислял XElement из потока чтения, а я обновлял его в другом потоке записи, я бы получил исключение. Это был не тот случай. Просто интересно, может ли кто-нибудь объяснить мне, видят ли они какие-либо серьезные проблемы с этим подходом. Не похоже, что это должно быть безопасно, но все мои тесты до сих пор показали, что это так.

1 Ответ

0 голосов
/ 02 июня 2009

Используйте System.Threading.ReaderWriterLock для управления доступом к XElement. Таким образом, вы синхронизируете всех читателей и любых писателей, не блокируя одновременную активность чтения.

...