DrawPath(Pen,GraphisPath)抛出OutOfMemoryException

时间:2011-08-30 18:35:12

标签: c# wpf out-of-memory system.drawing graphicspath

我已经过了好几次了,无法弄明白。方法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);
        }
    }
}

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

1 个答案:

答案 0 :(得分:0)

考虑到你是Pen和Path对象的属性处理,这是你的问题的根本原因是不太可能的。这一行可能会抛出异常,但问题已经酝酿了一段时间,这是只是打破骆驼背部的稻草,给冰山倾斜......你明白了。也就是说,了解Tigran在评论中提到的PathPoints数组有多大是有帮助的。

让自己成为一个好的探查者(我使用免费试用的RedGate's ANTS Memory Profiler),让你的应用程序通过它的步伐,让内存使用量增加,然后使用探查器结果缩小实际的罪魁祸首。回过头来获取更多信息或结果,我将很乐意为您提供进一步的帮助。