1

我已经经历了几次,无法弄清楚。DrawPath 方法抛出 System.OutOfMemoryException。

我已经看到 pen.DashPattern 实际上也抛出了 System.OutOfMemoryException,所以我设置了破折号模式,但更正它并不能防止错误。

using (var pen = new Pen(Color.Black,1.0f))
{
    pen.DashPattern = new[]{1.0f};
    pen.Transform = context.ReverseTransform;
    try
    {
        using (var temporaryPath = new GraphicsPath(path.PathPoints, path.PathTypes))
        {
            context.Graphics.DrawPath(pen, temporaryPath);
        }
    }
}

在这里的任何帮助都会很可爱!提前致谢!

4

1 回答 1

1

考虑到您正在处理 Pen 和 Path 对象的属性,这不太可能是您的问题的根本原因。那条线可能会引发异常,但问题已经酝酿了一段时间,这只是稻草这打破了骆驼的背部,倾倒了冰山......你明白了。PathPoints也就是说,正如 Tigran 在评论中提到的那样,了解您的阵列有多大会很有帮助。

给自己找一个好的分析器(我使用RedGate 的 ANTS Memory Profiler,它有免费试用版),让你的应用通过它的步伐,让内存使用量增加,然后使用分析器的结果来缩小实际的罪魁祸首。回来提供更多信息或您的结果,我很乐意为您提供进一步的帮助。

于 2011-08-30T18:38:54.247 回答