0

線の描画を高速化したい。並列 for ループが機能しないのはなぜですか? 何も描画しません。

また、それを高速化する他のアイデアも受け入れています。

増分 for ループのコードを編集しました。描画中に「タイプ 'System.AccessViolationException' の初回例外が SharpDX.Direct2D1.dll で発生しました」と表示されますが? livePoints は単純なリストです。

いくつかのコード:

private RenderTarget m_d2dRenderTarget;
...
m_d2dRenderTarget.BeginDraw();
//Drawing lines using the loop
m_d2dRenderTarget.EndDraw();

ループの標準:

for (int i = livePoints.Count - 1; i > 0; i--)
        {
            m_d2dRenderTarget.DrawLine(livePoints[i - 1],
                                    livePoints[i], solidColorBrush, (float)1.5);
        }

並列 for ループ:

Parallel.For(1, livePoints.Count-1, i =>
        {
            m_d2dRenderTarget.DrawLine(livePoints[i - 1],
                                    livePoints[i], solidColorBrush, (float)1.5);
        });
4

0 に答える 0