Ошибка памяти FlowDocument в C #

В настоящее время я пытаюсь решить проблему с выпуском ресурсов FlowDocument. Я загружаю RTF-файл и помещаю его в FlowDocument с помощью TextRange.Load. Я заметил, что после этого он сохраняет эти ресурсы, а GC не собирает их. Я запустил профилировщик памяти и увидел, что это правда. Я также сузил его до того места, где я загружаю, фактически помещаю rtf в FlowDocument. Если я этого не сделаю, тогда все в порядке. Итак, я знаю, что это проблема.

Я надеюсь, что некоторые указания о том, как я могу решить эту проблему. Вот код, который загружает RTF и все. Я закомментировал весь другой код и даже поместил его в его собственную область, а также попробовал GC.Collect (). Любая помощь очень ценится.

РЕДАКТИРОВАТЬ: Вот мой код в полном объеме на данный момент. Я взял все остальное, кроме самого необходимого, чтобы оно заработало. Проблема все еще там. Как вы можете видеть, FlowDocument и TextRange нигде не упоминаются.

    public LoadRTFWindow(string file)
    {
        InitializeComponent();

        using (FileStream reader = new FileStream(file, FileMode.Open))
        {
            FlowDocument doc = new FlowDocument();
            TextRange range = new TextRange(doc.ContentStart, doc.ContentEnd);
            range.Load(reader, System.Windows.DataFormats.Rtf);
        }
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
    }

я нашелэта почтаЯ надеялся, что это поможет мне решить мою проблему, но мне не повезло. Любая помощь очень ценится. Спасибо.

РЕДАКТИРОВАТЬ: я думаю, я должен упомянуть основной способ, которым я проверяю это. У меня открыт диспетчер задач Windows, и я наблюдаю за использованием памяти процессом моего приложения. Когда я запускаю приведенный выше код, приложение переходит от 40000 К до 70000 К при выполнении TextRange.Load () (это большой 400-страничный RTF), и после его завершения оно падает до 61 000 КБ и остается там. Я ожидаю, что он снизится до 40000 К или, по крайней мере, очень близко к нему.

Как я уже упоминал ранее, я использовал профилировщик памяти и увидел, что есть много абзацев, Run..ect. объекты все еще живы впоследствии.

Ответы на вопрос(8)

Ваш ответ на вопрос