Mensagem de erro ou alta utilização da CPU ao executar um aplicativo baseado em WPF

Este artigo ajuda você a resolve o problema em que você recebe uma mensagem de erro FileFormatException ou ArgumentOutOfRangeException em um programa baseado em Windows Presentation Foundation (WPF) quando o programa baseado em WPF processa texto.

Aplica-se a: Windows Presentation Foundation
Número de KB original: 937135

Sintomas

Ao executar um aplicativo baseado em WPF no Microsoft .NET Framework 3.0, você pode receber um erro FileFormatException ou um erro ArgumentOutofRangeException. O erro ocorre quando o aplicativo baseado em WPF começa a processar texto. Por exemplo, você pode receber uma mensagem de erro FileFormatException que se assemelha ao seguinte:

file:///filepath/file_name arquivo não está em conformidade com a especificação de formato de arquivo esperada.

Nesta mensagem de erro, file_name normalmente é o nome do arquivo de uma fonte. Além disso, o aplicativo consome até 100% de tempo de CPU.

Ao procurar no Gerenciador de Tarefas ou em outras ferramentas, PresentationFontCache.exe consome 50% ou mais do tempo de processador disponível.

Motivo

Esse problema ocorrerá se os drivers de vídeo substituirem os dados no cache de fonte armazenados na memória.

Solução

Para resolver esse problema, siga estas etapas:

  1. Saia de todos os aplicativos baseados em WPF que estão em execução no computador.

  2. Pare o serviço Windows Presentation Foundation Cache de Fonte 3.0.0.0. Para parar o serviço Windows Presentation Foundation Cache de Fonte 3.0.0.0, use um dos métodos a seguir.

    • Método 1: usar o Console de Gerenciamento da Microsoft

      1. Clique em Iniciar, clique em Executar, digite Services.msc e clique em OK.
      2. Clique com o botão direito do mouse em Windows Presentation Foundation Cache de Fonte 3.0.0.0 e clique em Parar.
    • Método 2: usar o prompt de comando

      1. Clique em Iniciar, clique em Executar, digite cmd e clique em OK.
      2. No prompt de comando, digite net stop "Windows Presentation Foundation Cache de Fonte 3.0.0.0"e pressione ENTER.
  3. Exclua o arquivo de Fontcache3.0.0.0.dat antigo.

    Observação

    Por padrão, o arquivo Fontcache3.0.0.0.dat está localizado na pasta no %windir%\ServiceProfiles\LocalService\AppData\Local Windows Vista. Por padrão, o arquivo Fontcache3.0.0.0.dat está localizado na %systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data pasta no Windows XP e em versões anteriores do Windows.

  4. Atualize os drivers de cartão de vídeo. Para fazer isso, utilize um dos métodos seguintes.

    • Método 1: usar Windows Update catálogo

      Para atualizar os drivers de cartão de vídeo, marcar para atualizações no Catálogo de Windows Update. Para obter mais informações sobre como baixar drivers do Catálogo de Windows Update, confira Como baixar atualizações que incluem drivers e hotfixes do Catálogo Windows Update.

    • Método 2: baixar e instalar os drivers de cartão de vídeo mais recentes

      Para baixar e instalar o vídeo mais recente cartão drivers, entre em contato com o computador ou o fabricante de hardware de vídeo.

Mais informações

Se o vídeo cartão drivers substituir os dados no cache de fonte armazenados na memória, os dados corrompidos poderão ser salvos no disco rígido como um arquivo de dados. Portanto, você pode experimentar o problema descrito na seção Sintomas quando outro aplicativo baseado em WPF tenta ler o arquivo de dados corrompido.

Depois de atualizar o vídeo cartão drivers e depois de excluir o arquivo Fontcache3.0.0.0.dat, um novo arquivo de dados de cache de fonte é criado com base na nova configuração do computador. Esse novo arquivo de dados de cache de fonte é criado quando o serviço Windows Presentation Foundation Cache de Fonte 3.0.0.0 é interrompido. Normalmente, o novo arquivo de dados de cache de fonte é criado quando o computador é desligado ou reiniciado.