并行绘制线用于循环

时间:2013-10-24 12:05:32

标签: c# drawing parallel-for

我想加快画线。为什么并行for循环不起作用?它没有任何吸引力。

我也愿意接受其他想法如何加快速度。

我编辑了增量for循环的代码。虽然我在绘图过程中得到“SharpDX.Direct2D1.dll”中出现“类型'System.AccessViolationException'的第一次机会异常? 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);
        }

并行循环:

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

0 个答案:

没有答案