Утечка памяти в WPF в XP (CMilChannel, HWND)

Мое приложение WPF теряет память со скоростью около 4 Кбит / с. Использование памяти в диспетчере задач постоянно увеличивается, пока приложение не завершится сНедостаточно памяти" исключение.

Проведя собственное исследование, я обнаружил, что проблема обсуждается здесь:Отследить утечку памяти в WPF и № 8 здесь:http://blogs.msdn.com/jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx

Описанная проблема: Это утечка в WPF, присутствующая в версиях платформы вплоть до .NET 3.5 SP1. Это происходит из-за способа, которым WPF выбирает, какой HWND использовать для отправки сообщений из потока рендеринга в поток пользовательского интерфейса. Этот образец уничтожает первый созданный HWND и запускает анимацию в новом окне. Это приводит к тому, что сообщения, отправляемые из потока рендеринга, накапливаются без обработки, что приводит к утечке памяти.

Предлагаемое решение: Обходной путь - сначала создать новый HwndSource в своем конструкторе класса App. Это ДОЛЖНО быть создано до того, как WPF создаст любой другой HWND. Просто создав этот HwndSource, WPF будет использовать его для отправки сообщений из потока рендеринга в поток пользовательского интерфейса. Это гарантирует, что все сообщения будут обработаны, и что ни одно из них не будет пропущено.

Но я нене понимаю решение! У меня есть подкласс Application, который я использую, и я попытался создать окно в этом конструкторе, но это не решило проблему.

Следуя буквальным инструкциям, похоже, мне просто нужно добавить это в конструктор приложения:

new HwndSource(new HwndSourceParameters("MyApplication"));

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

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