FIX: Geheugenlek in een WPF toepassing wanneer een brush-object wordt verwezen met een DynamicResource

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 2651992 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Het volgende scenario:
  • U Windows Presentation Foundation (WPF) toepassing maken die Microsoft doelen.NET Framework 3.0 of Microsoft.NET Framework 3.5.
  • De toepassing definieert een brush-object en een object kleur in de XAML bestand van de toepassing.
    • Het object penseel gebruikt een DynamicResource Als u verwijst naar de color-object. Bijvoorbeeld:
      <Application.Resources>
      
      <Color x:Key="color1">#ff4050ff</Color>
      
      <SolidColorBrush x:Key="brush1" Color="{DynamicResource color1}"/>
      
      </Application.Resources>
    • De brush-object wordt verwezen als een DynamicResource in een venster WPF of een besturingselement of een ander object. Bijvoorbeeld:
      <Window x:Class="WpfApplication6.Window1"
      
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      
      Title="Window1" Height="300" Width="300" Background="{DynamicResource brush1}">
      
      </Window>
  • U opent of sluit de exemplaren van het venster of het besturingselement.

In dit scenario worden exemplaren van de heap (GC) garbagecollection zijn verzameld en niet vrijgegeven. Na verloop van tijd treedt een geheugenlek op meer en meer exemplaren van het venster of het gebruikersbesturingselement voor de zijn gemaakt. Uiteindelijk ontvangt u een System.OutOfMemoryException uitzondering.

Opmerking Dit probleem treedt niet op wanneer de toepassing Microsoft doelen..NET Framework 4.

Oorzaak

Dit probleem treedt op omdat de WPF runtime-kabels een interne gebeurtenis-handler de ResourceReferenceExpressioneen object dat is gekoppeld aan de resource die het venster of het besturingselement wordt gebruikt. Deze gebeurtenis-handler verwijzing wordt niet verwijderd wanneer het venster of het besturingselement gesloten en ingesteld op null is.

Oplossing

Informatie over hotfixes

Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter bedoeld om alleen het probleem dat in dit artikel wordt beschreven. Deze alleen van toepassing op systemen waarop dit specifieke probleem.

Dit probleem kunt oplossen, kunt u contact opnemen met Microsoft Customer Support Services om de hotfix te verkrijgen. Een volledige lijst met telefoonnummers van Microsoft Customer Support Services en informatie over kosten van ondersteuning vindt u op de volgende Microsoft-website:
http://support.Microsoft.com/contactus/?ws=support
Opmerking In speciale gevallen kunnen kosten die normaal verbonden worden geannuleerd als een medewerker van Microsoft Productondersteuning bepaalt dat een specifieke update de oplossing van uw probleem. De gebruikelijke ondersteuningskosten gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.

Vereisten

Deze hotfix moet u Microsoft.NET Framework 3.5.1 op een computer waarop een van de volgende besturingssystemen is geïnstalleerd:
  • Windows 7 servicepack 1 (SP1)
  • Servicepack 1 (SP1) voor Windows Server 2008 R2


Opnieuw opstarten

U moet de computer opnieuw opstarten nadat u deze hotfix als de bestanden worden gebruikt.

Informatie over

De algemene versie van deze hotfix heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in UTC (Coordinated Universal Time). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Het verschil tussen UTC en lokale tijd, gebruikt de Tijdzone tabblad in de Datum en tijd een item in het Configuratiescherm.

Fof alle ondersteunde x 86-versies van Windows 7
Deze tabel samenvouwenDeze tabel uitklappen
BestandsnaamBestandsversieBestandsgrootteDatumTijdPlatform
Presentationframework.dll3.0.6920.57385,283,84016-Dec-201101: 49x 86
Windowsbase.dll3.0.6920.57381,253,37616-Dec-201101: 49x 86
Presentationcore.dll3.0.6920.57384,218,88016-Dec-201101: 49x 86
Presentationframework.dll3.0.6920.57385,283,84016-Dec-201101: 49x 86
Presentationhostdll.dll3.0.6920.5738131,36016-Dec-201101: 49x 86
Presentationhost.exe4.0.40305.0296,22416-Dec-201101: 49x 86
Presentationhostproxy.dll4.0.31106.0100,13616-Dec-201101: 49x 86
Windowsbase.dll3.0.6920.57381,253,37616-Dec-201101: 49x 86

Fof alle ondersteunde x 64-versies van Windows 7 en Windows Server 2008 R2
Deze tabel samenvouwenDeze tabel uitklappen
BestandsnaamBestandsversieBestandsgrootteDatumTijdPlatform
Presentationcore.dll3.0.6920.57383,998,72016-Dec-201101: 42x 64
Presentationframework.dll3.0.6920.57384,640,76816-Dec-201101: 42x 86
Presentationhostdll.dll3.0.6920.5738172,32016-Dec-201101: 42x 64
Presentationhost.exe4.0.31106.0321,31216-Dec-201101: 42x 64
Presentationhostproxy.dll4.0.31106.0110,88816-Dec-201101: 42x 64
Windowsbase.dll3.0.6920.57381,114,11216-Dec-201101: 42x 86
Presentationframework.dll3.0.6920.57385,283,84016-Dec-201101: 49x 86
Windowsbase.dll3.0.6920.57381,253,37616-Dec-201101: 49x 86
Presentationcore.dll3.0.6920.57384,218,88016-Dec-201101: 49x 86
Presentationframework.dll3.0.6920.57385,283,84016-Dec-201101: 49x 86
Presentationhostdll.dll3.0.6920.5738131,36016-Dec-201101: 49x 86
Presentationhost.exe4.0.40305.0296,22416-Dec-201101: 49x 86
Presentationhostproxy.dll4.0.31106.0100,13616-Dec-201101: 49x 86
Windowsbase.dll3.0.6920.57381,253,37616-Dec-201101: 49x 86



Workaround

Dit probleem wilt omzeilen, gebruikt u een van de volgende methoden:
  • Gebruik eenStaticResource Als u verwijst naar de color-object in de brush-object. Wijzig bijvoorbeeld het eerste deel van de code in de XAML-bestand dat wordt vermeld in de sectie 'Symptomen' de volgende:
    <Color x:Key="color1">#ff4050ff</Color> 
    <SolidColorBrush x:Key="brush1" Color="{StaticResource color1}"></SolidColorBrush>
  • Stel dex: gedeelde false als optie de DynamicResource wordt gebruikt. Wijzig bijvoorbeeld het eerste deel van de code in de XAML-bestand dat wordt vermeld in de sectie 'Symptomen' de volgende:
    <Application.Resources>
            <Color x:Key="color1">#ff4050ff</Color>
            <SolidColorBrush x:Key="brush1" x:Shared="False" Color="{DynamicResource color1}" />
        </Application.Resources>



Referenties

Voor meer informatie over de DynamicResource Markup-extensie, Ga naar de volgende MSDN-website:
Algemene informatie over de DynamicResource markup-extensie
Ga naar de volgende MSDN-website voor meer informatie over WPF penselen:
Algemene informatie over WPF penselen

Status

Microsoft heeft bevestigd dat dit een probleem is in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Eigenschappen

Artikel ID: 2651992 - Laatste beoordeling: dinsdag 10 januari 2012 - Wijziging: 1.0
De informatie in dit artikel is van toepassing op:
  • Microsoft .NET Framework 3.0
  • Microsoft .NET Framework 3.0 Service Pack 1
  • Microsoft .NET Framework 3.0 Service Pack 2
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 3.5 Service Pack 1
Trefwoorden: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2651992 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:2651992

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com