.FromImageメソッドで作成されたグラフィックスクラスで、線/円弧を描画するGDI+でいくつかのテストを行いました。
パフォーマンス上の理由から、これをマルチスレッド設定に分割します(いくつかのメソッドを使用したテスト:New Thread(AddressOf..またはParallel.For...またはNewTask ..)これではパフォーマンスが向上しないことに気付きました。 .Graphics.DrawPathルーチンをテストルーチン(例:計算)に置き換えると、マルチスレッドを使用するとパフォーマンスが大幅に向上します(図を参照)。この理由と解決方法は何ですか。
私は4つのセットアップを作成しました:
グラフィックスへの描画:4スレッド(またはタスク)で4x(個別のgraphics.fromimageに40000要素)(時間:1秒76ミリ秒)
グラフィックへの描画:4x(個別のgraphics.fromimageに40000要素)シリアル(時間:959ミリ秒)
計算:4スレッド(またはタスク)で4x(浮動小数点テスト計算)(時間:672ミリ秒)
計算:4x(浮動小数点テスト計算)シリアル(時間:2秒189ミリ秒