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

Este artículo le ayuda a resolver el problema por el que recibe 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 de KB original: 937135

Síntomas

Al ejecutar una aplicación basada en WPF en Microsoft .NET Framework 3.0, puede recibir 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 del tiempo de procesador disponible.

Causa

Este problema se produce si los controladores de vídeo sobrescriben los datos de la caché de fuentes almacenada en 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 servicio Windows Presentation Foundation Font Cache 3.0.0.0. Para detener el servicio Windows Presentation Foundation Font Cache 3.0.0.0, use uno de los métodos siguientes.

    • Método 1: Uso de 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 botón derecho en 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 cmdy, 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 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 %systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data carpeta de Windows XP y en versiones anteriores de Windows.

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

    • Método 1: Uso de Windows Update Catalog

      Para actualizar los controladores de tarjetas de vídeo, busque 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, consulte Cómo descargar actualizaciones que incluyen controladores y revisiones del catálogo de Windows Update.

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

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

Más información

Si los controladores de tarjeta de vídeo sobrescriben los datos de la memoria caché de fuentes que se almacenan en la memoria, los datos dañados se pueden guardar 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 tarjeta 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 se detiene el servicio Windows Presentation Foundation Font Cache 3.0.0.0. Normalmente, el nuevo archivo de datos de caché de fuentes se crea cuando el equipo se apaga o reinicia.