XElementのの追加操作は、安全をスレッドですか?
-
26-09-2019 - |
質問
は、それが安全な(並列foreachのように)並列の方法でそのaddメソッドを経由してXElementのに子要素を追加しますか?
ありがとうございます。
解決
ドキュメントでから、
ビジュアルで共有すべてのパブリックstatic( このタイプの基本的な)メンバーは、スレッドです 安全。インスタンスメンバーの場合はそうではありません スレッドセーフであることが保証ます。
言い換えれば、無、add
方法はスレッドセーフではありません。
他のヒント
最近の(痛い)経験リード私は、それは非常に、非常に非スレッドセーフであると考えます。
私は7.4の万人それぞれの8.8万人の余分な不要なのXElementインスタンスを含まダンプファイルのカップルを分析しました。関連するいくつかの無害に見えるコードは(いくつかのケースでadd()を呼び出すを含む)のXElementのサブノードを操作するときに私が判断することができる最高のとおり、彼らが作成されました、同時に2つのスレッドプールのスレッドから呼ばれました。
XElementオブジェクトとそれに関連するクラスは、リンクリストのような構造を使用して実装されている、とあなたは、リンク参照をスクランブル場合は奇妙な結果の様々な続いて起こることができます - -この、あまりにも驚くべきことではないなど、ループ、付着していない断片を、
所属していません StackOverflow