0

我想加快线条的绘制速度。为什么并行 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);
        }

并行for循环:

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

0 回答 0