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 en 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 KB original: 937135
Síntomas
Cuando ejecuta 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 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 el 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:
Salga de todas las aplicaciones basadas en WPF que se ejecutan en el equipo.
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
- Haga clic en Inicio , en Ejecutar, escriba Services.msc y, a continuación, haga clic en Aceptar.
- Haga clic con el botón 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
- Haga clic en Inicio , en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar.
- En el símbolo del sistema, escriba net stop "Windows Presentation Foundation Caché de fuentes 3.0.0.0" y, a continuación, presione ENTRAR.
Elimine el archivo Fontcache3.0.0.0.dat antiguo.
Nota
De forma predeterminada, el archivo Fontcache3.0.0.0.dat se encuentra en la carpeta de
%windir%\ServiceProfiles\LocalService\AppData\LocalWindows Vista. De forma predeterminada, el archivo Fontcache3.0.0.0.dat se encuentra en la carpeta de Windows XP y en versiones anteriores de%systemdrive%\Documents and Settings\LocalService\Local Settings\Application DataWindows.Actualice los controladores de tarjeta de vídeo. Para ello, use uno de los métodos siguientes.
Método 1: Usar Windows catálogo de actualizaciones
Para actualizar los controladores de tarjeta de vídeo, compruebe si hay actualizaciones en el catálogo Windows actualización. Para obtener más información acerca de cómo descargar controladores del Catálogo de actualizaciones de Windows, vea How to download updates that include drivers and hotfixes from the Windows Update Catalog.
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, póngase en contacto con el equipo o el fabricante del 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 almacenada en la memoria, los datos dañados pueden guardarse 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 según la nueva configuración del equipo. Este nuevo archivo de datos de caché de fuentes se crea cuando se detiene Windows Presentation Foundation 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.