Поделиться через


Сообщение об ошибке или высокая загрузка ЦП при запуске приложения на основе WPF

Эта статья поможет устранить проблему, из-за которой вы получаете сообщение об ошибке FileFormatException или ArgumentOutOfRangeException в программе на основе Windows Presentation Foundation (WPF) при обработке текста программы на основе WPF.

Область применения: Windows Presentation Foundation
Исходный номер базы знаний: 937135

Симптомы

При запуске приложения на основе WPF в Microsoft платформа .NET Framework 3.0 может появиться ошибка FileFormatException или ошибка ArgumentOutofRangeException. Ошибка возникает, когда приложение на основе WPF начинает обрабатывать текст. Например, может появиться сообщение об ошибке FileFormatException , похожее на следующее:

file:///filepath/file_name файл не соответствует ожидаемой спецификации формата файла.

В этом сообщении об ошибке file_name обычно является именем файла шрифта. Кроме того, приложение потребляет до 100 процентов времени ЦП.

При поиске в диспетчере задач или других средствах PresentationFontCache.exe потребляет 50 % или больше доступного времени процессора.

Причина

Эта проблема возникает, если драйверы видео перезаписывают данные в кэше шрифтов, хранящихся в памяти.

Резолюция

Проблему можно устранить следующим способом.

  1. Закройте все приложения на основе WPF, работающие на компьютере.

  2. Остановите службу кэша шрифтов Windows Presentation Foundation 3.0.0.0. Чтобы остановить службу кэша шрифтов Windows Presentation Foundation 3.0.0.0, используйте один из следующих методов.

    • Метод 1. Использование консоли управления Майкрософт

      1. Щелкните Запустить, затем — Выполнить, введите Services.msc, а затем нажмите кнопку ОК.
      2. Щелкните правой кнопкой мыши кэш шрифтов Windows Presentation Foundation 3.0.0.0 и нажмите кнопку " Остановить".
    • Метод 2. Использование командной строки

      1. Нажмите кнопку Пуск, выберите команду Выполнить, введите cmdи нажмите кнопку ОК.
      2. В командной строке введите net stop "Кэш шрифтов Windows Presentation Foundation 3.0.0.0", а затем нажмите клавишу ВВОД.
  3. Удалите старый файл Fontcache3.0.0.0.dat.

    Замечание

    По умолчанию файл Fontcache3.0.0.0.dat находится в папке %windir%\ServiceProfiles\LocalService\AppData\Local в Windows Vista. По умолчанию файл Fontcache3.0.0.0.dat находится в %systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data папке Windows XP и в более ранних версиях Windows.

  4. Обновите драйверы видеокарты. Для этого используйте один из следующих методов.

    • Метод 1. Использование каталога Обновл. Windows

      Чтобы обновить драйверы видеокарты, проверьте наличие обновлений в каталоге Обновл. Windows. Дополнительные сведения о том, как скачать драйверы из каталога Обновл. Windows, см. в статье "Скачивание обновлений, включающих драйверы и исправления из каталога Обновл. Windows".

    • Метод 2. Скачивание и установка последних драйверов видеокарты

      Чтобы скачать и установить последние драйверы видеоадаптер, обратитесь к компьютеру или изготовителю видеоустройства.

Дополнительные сведения

Если драйверы видеокарты перезаписывают данные в кэше шрифтов, хранящихся в памяти, поврежденные данные могут быть сохранены на жестком диске в виде файла данных. Поэтому может возникнуть проблема, описанная в разделе "Симптомы ", когда другое приложение на основе WPF пытается прочитать поврежденный файл данных.

После обновления драйверов видеокарты и после удаления файла Fontcache3.0.0.0.dat создается новый файл данных кэша шрифтов на основе новой конфигурации компьютера. Этот новый файл данных кэша шрифтов создается при остановке службы кэша шрифтов Windows Presentation Foundation 3.0.0.0. Как правило, новый файл данных кэша шрифтов создается при завершении или перезапуске компьютера.