WPF イメージングを使用して、DrawingVisual を使用してテキスト、3D グラフィックス、および画像を合成しています。結果は RenderTargetBitmap にレンダリングされ、jpeg としてディスクに保存されます。これらはすべて、ビジュアル ウィンドウのないコードで行われます。
一度に 1 つのことだけを実行しようとしている限り、うまく機能しています。ただし、複数のスレッドを使用してレンダリングを行うことで速度を上げることができるかどうかを確認したいと思います。各スレッドは、独自の DrawingContext、DrawingVisual などを作成するオブジェクトを使用します。ただし、並列にアクセスしようとすると誤ったエラーが発生するため、どこかに共有状態があることは明らかです。「別のスレッドが作成したため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」という場合があります。また、たとえば 3D ジオメトリにポイントを追加しているときに、WPF の腸から NullReferenceExceptions が泡立ち、見た目が悪い場合もあります。
各スレッドが WPF で互いに離れていることを確認する方法はありますか? それとも共有状態は避けられないのでしょうか?