子要素をXElementにADDメソッドを介してパラレルに追加することは安全ですか(並列foreachなど)?XElementの追加操作はスレッドセーフですか?
ありがとうございます! documentationから
子要素をXElementにADDメソッドを介してパラレルに追加することは安全ですか(並列foreachなど)?XElementの追加操作はスレッドセーフですか?
ありがとうございます! documentationから
:このタイプの
すべてのパブリックstatic(ビジュアル BasicではShared)メンバーは、スレッド 安全です。すべてのインスタンスメンバは、スレッドセーフであることが保証されている ではありません。
つまり、いいえ、add
メソッドはスレッドセーフではありません。
最近の(痛い)経験は私が非常に、非常にスレッドが安全ではないと思うように導きます。
私は、それぞれ7.4 百万と880万余分な不要なXElementインスタンスを含むいくつかのダンプファイルを分析しました。 XElementのサブノードを操作する無害なコード(いくつかのケースではAdd()を呼び出すことを含む)が2つのスレッドプールスレッドから同時に呼び出されたときに作成されました。 XElementオブジェクトと関連付けられたクラスは、リンクリストのような構造を使用して実装されている、とあなたはスクランブル場合、リンクが続いて起こることができます奇妙な結果の様々な参照 - -
は、これはあまりにも驚くべきことではないループ、付着していない断片などを
+1 - 通常、ドキュメントを読むのは良いスタートです。 –