Mensaje de error o uso elevado de CPU al ejecutar una aplicación basada en WPF

Este artículo te ayuda a resolver el problema en el que recibes un mensaje de error FileFormatException o ArgumentOutOfRangeException en un programa basado en Windows Presentation Foundation (WPF) cuando el programa basado en WPF procesa texto.

Se aplica a:   Windows Presentation Foundation
Número KB original:   937135

Síntomas

Al ejecutar una aplicación basada en WPF en Microsoft .NET Framework 3.0, es posible que reciba un error FileFormatException o un error ArgumentOutofRangeException. El error se produce cuando la aplicación basada en WPF comienza a procesar texto. Por ejemplo, puede recibir un mensaje de error FileFormatException similar al siguiente:

file:///filepath/file_name archivo no se ajusta a la especificación de formato de archivo esperada.

En este mensaje de error, file_name suele ser el nombre de archivo de una fuente. Además, la aplicación consume hasta un 100% de tiempo de CPU.

Al buscar en el Administrador de tareas u otras herramientas, PresentationFontCache.exe consume el 50 % o más de tiempo de procesador disponible.

Causa

Este problema se produce si los controladores de vídeo sobrescriben los datos de la memoria caché de fuentes almacenada en la memoria.

Solución

Para resolver este problema, siga estos pasos:

  1. Salga de todas las aplicaciones basadas en WPF que se ejecutan en el equipo.

  2. Detenga el Windows Presentation Foundation caché de fuentes 3.0.0.0. Para detener el Windows Presentation Foundation caché de fuentes 3.0.0.0, use uno de los métodos siguientes.

    • Método 1: Usar Microsoft Management Console

      1. Haga clic en Inicio, en Ejecutar, escriba Services.msc y, a continuación, haga clic en Aceptar.
      2. Haga clic con el Windows Presentation Foundation caché de fuentes 3.0.0.0 y, a continuación, haga clic en Detener.
    • Método 2: Usar el símbolo del sistema

      1. Haga clic en Inicio, en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
      2. En el símbolo del sistema, escriba net stop "Windows Presentation Foundation Font Cache 3.0.0.0" y, a continuación, presione ENTRAR.
  3. Elimine el archivo Fontcache3.0.0.0.dat antiguo.

    Nota

    De forma predeterminada, el archivo Fontcache3.0.0.0.dat se encuentra en la %windir%\ServiceProfiles\LocalService\AppData\Local carpeta de Windows Vista. De forma predeterminada, el archivo Fontcache3.0.0.0.dat se encuentra en la carpeta de Windows XP y en versiones anteriores %systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data de Windows.

  4. Actualiza los controladores de tarjetas de vídeo. Para ello, use uno de los métodos siguientes.

    • Método 1: Usar catálogo de Windows Update

      Para actualizar los controladores de tarjetas de vídeo, comprueba si hay actualizaciones en el Catálogo de Windows Update. Para obtener más información sobre cómo descargar controladores del Catálogo de Windows Update, consulta Cómo descargar actualizaciones que incluyen controladores y revisiones del Catálogo de Windows Update.

    • Método 2: Descargar e instalar los controladores de tarjetas de vídeo más recientes

      Para descargar e instalar los controladores de tarjeta de vídeo más recientes, ponte en contacto con el equipo o con el fabricante del hardware de vídeo.

Más información

Si los controladores de tarjetas de vídeo sobrescriben los datos de la memoria caché de fuentes almacenada en la memoria, es posible que los datos dañados se guarden en el disco duro como un archivo de datos. Por lo tanto, puede experimentar el problema que se describe en la sección Síntomas cuando otra aplicación basada en WPF intenta leer el archivo de datos dañado.

Después de actualizar los controladores de tarjetas de vídeo y después de eliminar el archivo Fontcache3.0.0.0.dat, se crea un nuevo archivo de datos de caché de fuentes en función de la nueva configuración del equipo. Este nuevo archivo de datos de caché de fuentes se crea cuando Windows Presentation Foundation servicio de caché de fuentes 3.0.0.0. Normalmente, el nuevo archivo de datos de caché de fuentes se crea cuando el equipo se apaga o se reinicia.