WPF tabanlı bir uygulama çalıştırılırken hata iletisi veya yüksek CPU kullanımı

Bu makale, WPF tabanlı program metin işlerken Windows Presentation Foundation (WPF) tabanlı bir programda FileFormatException veya ArgumentOutOfRangeException hata iletisi almanıza neden olan sorunu çözmenize yardımcı olur.

Şunlar için geçerlidir: Windows Presentation Foundation
Özgün KB numarası: 937135

Belirtiler

Microsoft .NET Framework 3.0'da WPF tabanlı bir uygulama çalıştırdığınızda, FileFormatException hatası veya ArgumentOutofRangeException hatası alabilirsiniz. HATA, WPF tabanlı uygulama metin işlemeye başladığında oluşur. Örneğin, aşağıdakine benzer bir FileFormatException hata iletisi alabilirsiniz:

file:///filepath/file_name dosya beklenen dosya biçimi belirtimine uymuyor.

Bu hata iletisinde , file_name genellikle yazı tipinin dosya adıdır. Ayrıca uygulama yüzde 100'e kadar CPU süresi tüketir.

Görev Yöneticisi'ne veya diğer araçlara bakarken PresentationFontCache.exe kullanılabilir işlemci süresinin %50'sini veya daha fazlasını tüketir.

Neden

Bu sorun, video sürücüleri bellekte depolanan yazı tipi önbelleğindeki verilerin üzerine yazarsa oluşur.

Çözüm

Bu sorunu çözmek için şu adımları izleyin:

  1. Bilgisayarda çalışan tüm WPF tabanlı uygulamalardan çıkın.

  2. Windows Presentation Foundation Yazı Tipi Önbelleği 3.0.0.0 hizmetini durdurun. Windows Presentation Foundation Yazı Tipi Önbelleği 3.0.0.0 hizmetini durdurmak için aşağıdaki yöntemlerden birini kullanın.

    • Yöntem 1: Microsoft Yönetim Konsolu'nu kullanma

      1. Başlat'a tıklayın, Çalıştır'a tıklayın, Services.msc yazın ve tamam'a tıklayın.
      2. Windows Presentation Foundation Yazı Tipi Önbelleği 3.0.0.0'a sağ tıklayın ve ardından Durdur'a tıklayın.
    • Yöntem 2: Komut istemini kullanma

      1. Başlat'a tıklayın, Çalıştır'a tıklayın, cmd yazın ve tamam'a tıklayın.
      2. Komut isteminde net stop "Windows Presentation Foundation Yazı Tipi Önbelleği 3.0.0.0" yazın ve ENTER tuşuna basın.
  3. Eski Fontcache3.0.0.0.dat dosyasını silin.

    Not

    Varsayılan olarak, Fontcache3.0.0.0.dat dosyası Windows Vista'daki %windir%\ServiceProfiles\LocalService\AppData\Local klasörde bulunur. Varsayılan olarak, Fontcache3.0.0.0.dat dosyası Windows XP'deki %systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data klasörde ve Windows'un önceki sürümlerinde bulunur.

  4. Ekran kartı sürücülerini güncelleştirin. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın.

    • Yöntem 1: Windows Update Kataloğu kullanma

      Ekran kartı sürücülerini güncelleştirmek için Windows Update Kataloğu'nda güncelleştirmeleri denetleyin. Windows Update Kataloğu'ndan sürücüleri indirme hakkında daha fazla bilgi için bkz. Windows Update Kataloğu'ndan sürücüleri ve düzeltmeleri içeren güncelleştirmeleri indirme.

    • Yöntem 2: En son ekran kartı sürücülerini indirme ve yükleme

      En son ekran kartı sürücülerini indirmek ve yüklemek için bilgisayar veya video donanımı üreticisine başvurun.

Daha fazla bilgi

Ekran kartı sürücüleri bellekte depolanan yazı tipi önbelleğindeki verilerin üzerine yazarsa, bozuk veriler sabit diske veri dosyası olarak kaydedilebilir. Bu nedenle, başka bir WPF tabanlı uygulama bozuk veri dosyasını okumaya çalıştığında Belirtiler bölümünde açıklanan sorunla karşılaşabilirsiniz.

Ekran kartı sürücülerini güncelleştirdikten ve Fontcache3.0.0.0.dat dosyasını sildikten sonra, yeni bilgisayar yapılandırmasına göre yeni bir yazı tipi önbellek veri dosyası oluşturulur. Bu yeni yazı tipi önbellek veri dosyası, Windows Presentation Foundation Yazı Tipi Önbelleği 3.0.0.0 hizmeti durdurulduğunda oluşturulur. Genellikle, bilgisayar kapatıldığında veya yeniden başlatıldığında yeni yazı tipi önbellek veri dosyası oluşturulur.