サイトマップとして共有のXElement
-
06-09-2019 - |
質問
私は、サイトマップのような静的のXElementを使用したカスタムCMSを持っています。更新がマップに発生した場合、私はちょうど彼らがそれを必要とするとき、それらはXElementオブジェクトをつかむためにできるように、ライター・スレッドを同期していますが、読者と何もしないのです。
テストでは、私は別の書き込みスレッド上で、それを更新しながら、私は、読者のスレッドからXElementオブジェクトを列挙している場合、私は例外になるだろうと思いました。それはそうではありませんでした。彼らはこのアプローチを用いて、主要な問題を見れば、誰もが私に説明できるかどうかだけで不思議。それは安全なはずのようにそれはいないようですが、すべて私のテストは、これまでのところ、それがあることを示しています。
解決
のXElementへのアクセスを制御するためにSystem.Threading.ReaderWriterLockを使用してください。その方法は、あなたが同時読み取りの活性を遮断することなく、すべての読者と任意のライターを同期ます。
所属していません StackOverflow