我想加快画线。为什么并行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);
});