Удаление страницы Flowdocument после рендеринга

#pagination #out-of-memory #flowdocument #xpsdocument #fixeddocument

#разбивка на страницы #нехватка памяти #flowdocument #xpsdocument #исправленный документ

Вопрос:

             //Create a User Control with a TextBlock
            TextBlock textBlock = new TextBlock();
            textBlock.Text = "Helo";
            UserControl userCOntrol = new UserControl();
            userCOntrol.Content = textBlock;

            //Add the UserControl to a Table
            table.RowGroups[0].Rows[0].Cells[0].Blocks.Add(new Paragraph(new InlineUIContainer(userCOntrol as UIElement)));

            //Add the table to a FlowDocument
            FlowDocument flowDocument = new FlowDocument();
            flowDocument.Blocks.Add(table);

            //Fetch the Visual representation of the page.
            DocumentPage page = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator.GetPage(0);


            //Extract the Visual from the page and add to a Fixed Page
            FixedPage fixedPage = new FixedPage();
            ContainerVisual container = new ContainerVisual();
            container.Children.Add(page.Visual);
            DrawingCanvas canvas= new DrawingCanvas();
            canvas.AddVisual(container);
            fixedPage.Children.Add(canvas);


            //now write the FixedPage to an XPS file
            using (XpsDocument xpsDoc = new XpsDocument("c:\x.xps", FileAccess.ReadWrite))
            {
                XpsDocumentWriter xpsDw = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
                xpsDw.Write(kj);
            }
  

Приведенный выше фрагмент кода ничего не освобождает. Как только flowdocument разбит на страницы и извлечено визуальное представление страницы, на содержимое flowdocument ссылается визуальный элемент. таким образом, ни визуальный элемент, ни содержимое flowdocument не удаляются.
Приведенный выше фрагмент кода при выполнении непрерывно вытягивается из памяти.

Кто-нибудь знает, как освободить память, занимаемую всеми этими ресурсами?

Заранее спасибо.

Комментарии:

1. Возможно, это не решение вашей проблемы, но вызов GC. Многократный сбор освободит часть памяти.