.NET System.Xml.Xsl の MSDN。XslCompiledTransformクラスの状態:
スレッドセーフ
[1] XslCompiledTransform オブジェクトは、読み込まれるとスレッド セーフになります。つまり、Load メソッドが正常に完了した後、Transform メソッドを複数のスレッドから同時に呼び出すことができます。
[2]別のスレッドで Transform メソッドが呼び出されているときに、別のスレッドで Load メソッドが再度呼び出された場合、XslCompiledTransform オブジェクトは、古い状態を使用し続けることによって Transform 呼び出しの実行を終了します。Load メソッドが正常に完了すると、新しい状態が使用されます。
[3]注 Load メソッドは、複数のスレッドから同時に呼び出された場合、スレッド セーフではありません。
段落[1]と[2]が同じオブジェクト インスタンスで (複数のスレッドで)参照されているLoad()
か、呼び出されていることを (かなり) 確信しています。しかし、[3]について、同じインスタンスでの同時実行を意味するのか、それともすべてのインスタンスから同時実行を相互に除外する必要があるのか (それを意味する静的なものがある) を知っている人はいますか?Transform()
XslCompiledTransform
Load()
Load()