MSDNによると、XmlSchemaSet
クラスはスレッドセーフであるとは限りません。XmlSchemaSetは複数のXmlReader/XmlWriterオブジェクト間で共有できますか?
だから、複数のXmlReader
オブジェクトが1つのXmlSchemaSet
オブジェクトを参照する単一のオブジェクトを使用して作成することができ、複数のスレッドから同時に使用しますか?つまり、新しい文書をバックグラウンドで処理する必要があるたびに、新しいオブジェクトを作成し、XmlSchemaSet
という新しいコピーを割り当てる必要があるということですか?
このように見えるのは非常に無駄でしょう。特にXmlSchemaSet
は、新しいドキュメントごとにスキーマを再コンパイルする必要があるためです。
XmlWriter
オブジェクトの回答は同じですか?
もちろん、私はXmlSchemaSet
オブジェクトを最初に移入した後に変更しません。最初に使用する前にCompile
メソッドを呼び出すこともできます。その後、はと思われますが、読み取りのみが実行されるためすべてが安全でなければなりませんが、わかりません。
@ mjwills申し訳ありませんが、私はコンピュータから離れていました。はい、どちらの答えでも私が恐れていたことを確認できます。多分、マルチリーダ、ゼロライターのシナリオがうまくいくかもしれませんが、これに頼らないでください。今、受け入れられたものとしてマークするものを決めるために... –