DrawPath (Pen, GraphisPath) выбрасывает исключение OutOfMemoryException - PullRequest
1 голос
/ 30 августа 2011

Я закончил это пару раз и не могу понять.метод 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 Ответ

1 голос
/ 30 августа 2011

Маловероятно, что это является основной причиной вашей проблемы, учитывая, что вы утилизируете свойство объекта Pen и Path. Возможно, эта строка вызывает исключение, но проблема уже накапливается в течение некоторого времени, и этотолько соломинка, которая сломала спину верблюду, опрокинула айсберг ... ты понял.Тем не менее, было бы полезно узнать, насколько велик ваш массив PathPoints, как упомянуто в комментарии Тиграна.

Получите хороший профилировщик (я использую Профилировщик памяти ANTS RedGate , который имеетбесплатную пробную версию), проверьте работу своего приложения, увеличьте объем используемой памяти, а затем используйте результаты профилировщика для сужения фактической причины.Приходите с дополнительной информацией или вашими результатами, и я буду рад помочь вам.

...