OPRAVIŤ: Memory leak dôjde v aplikácii WPF keď kefka objekt odkazuje pomocou DynamicResource

Preklady článku Preklady článku
ID článku: 2651992 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

PRIZNAKY

Uvažujme o nasledujúcom prípade:
  • Môžete vytvoriť Microsoft Windows Presentation Foundation (WPF) aplikácie, ktorá sa zameriava na Microsoft.NET Framework 3.0 alebo Microsoft.NET Framework 3.5.
  • Uplatňovanie definuje objekt štetec a farbu objektu v súbore XAML žiadosti.
    • Kefa objekt používa DynamicResource odkaz farbu objektu. Napríklad,
      <Application.Resources>
      
      <Color x:Key="color1">#ff4050ff</Color>
      
      <SolidColorBrush x:Key="brush1" Color="{DynamicResource color1}"/>
      
      </Application.Resources>
    • Kefa objekt je uvádzaný ako DynamicResource v okne WPF alebo kontrola používateľských alebo iný objekt. Napríklad,
      <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>
  • Otvorenie alebo zatvorenie výskyty okna alebo kontrola používateľských.

V tomto scenári inštancie sú zakorenené v (GC) haldy odpadky zozbierané a nebola uvoľnená. Časom, memory leak dôjde, ako stále viac a viac výskyty okna alebo kontrola používateľských sú vytvorené. Nakoniec, dostanete System.OutOfMemoryException výnimka.

Poznámka Tento problém sa nevyskytuje pri uplatňovaní ciele Microsoft.NET Framework 4.

PRICINA

Tento problém sa vyskytuje, pretože rozhranie WPF run-time drôty vnútorného udalosť handler na ResourceReferenceExpressionobjekt, ktorý je priradený zdroj, ktorý je pomocou okna alebo kontrola používateľských. Táto udalosť handler odkaz sa neodstráni keď okna alebo kontrola používateľských je zatvorené a nastaviť na hodnotu null.

RIESENIE

Informácie o rýchlej oprave

Podporovaná rýchla oprava je teraz k dispozícii od spoločnosti Microsoft. Je však určená iba problém, ktoré popisuje tento článok. Vzťahujú len na systémy, ktoré sú zažíva tento špecifický problém.

Ak chcete tento problém vyriešiť, kontaktujte službu podpory zákazníkov spoločnosti Microsoft získať rýchlu opravu. Úplný zoznam telefónnych čísel služieb technickej podpory zákazníkov spoločnosti Microsoft a informácie o náklady na technickú podporu, navštívte nasledujúce webovú lokalitu spoločnosti Microsoft:
http://support.Microsoft.com/contactus/?ws=support
Poznámka V osobitných prípadoch, nemusia účtovať poplatky, ktoré sú telefonickú podporu, ak Microsoft podporu Professional určuje, že konkrétna aktualizácia vyrieši váš problém. Obvyklé podporu náklady budú vzťahovať na dodatočnú podporu otázky a otázky, ktoré nespĺňajú kritériá pre konkrétnu aktualizáciu predmetné.

Predpoklady

Ak chcete použiť túto rýchlu opravu, musíte mať program Microsoft.NET Framework 3.5.1 nainštalovaný na počítači, na ktorom je spustený jeden z nasledujúcich operačných systémov:
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2008 R2 Service Pack 1 (SP1)


Ruský štandardný čas

Po použití tejto rýchlej opravy, ak sa používajú ovplyvnené súbory, musíte reštartovať počítač.

Informácie o súbore

Globálna verzia tejto rýchlej opravy má atribúty súborov (alebo novšie atribúty) uvedené v nasledujúcej tabuľke. Dátumy a časy jednotlivých súborov sú uvedené v univerzálny koordinovaný čas (UTC). Keď zobrazíte informácie o súbore, sa skonvertuje na miestny čas. Ak chcete vyhľadať rozdiely medzi časom UTC a miestnym časom, použite Časové pásmo kartu v Dátum a čas položky v ovládacom paneli.

Falebo všetky podporované x 86-bitové verzie systému Windows 7
Zbaliť túto tabuľkuRozbaliť túto tabuľku
Názov súboruVerzia súboruVeľkosť súboruDátumČasPlatforma
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

Falebo všetky podporované x 64-bitových verziách systému Windows 7 a Windows Server 2008 R2
Zbaliť túto tabuľkuRozbaliť túto tabuľku
Názov súboruVerzia súboruVeľkosť súboruDátumČasPlatforma
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



RIEŠENIE

Tento problém obísť, použite jednu z nasledujúcich metód:
  • PoužitieStaticResource odkaz farbu objektu v objekte štetcom. Môžete napríklad zmeniť prvá časť kódu v súbore XAML, ktorý je uvedený v časti „príznaky"takto:
    <Color x:Key="color1">#ff4050ff</Color> 
    <SolidColorBrush x:Key="brush1" Color="{StaticResource color1}"></SolidColorBrush>
  • Nastaviťx: zdieľané možnosť falošných ak DynamicResource používa. Môžete napríklad zmeniť prvá časť kódu v súbore XAML, ktorý je uvedený v časti „príznaky"takto:
    <Application.Resources>
            <Color x:Key="color1">#ff4050ff</Color>
            <SolidColorBrush x:Key="brush1" x:Shared="False" Color="{DynamicResource color1}" />
        </Application.Resources>



ODKAZY

Ďalšie informácie o DynamicResource rozšírenie značky, navštívte nasledujúce webovú lokalitu MSDN:
Všeobecné informácie o rozšírenie značky DynamicResource
Ďalšie informácie o WPF kefy, navštívte nasledujúce webovej lokalite MSDN:
Všeobecné informácie o WPF kefy

STAV

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti "Platí pre".

Vlastnosti

ID článku: 2651992 - Posledná kontrola: 10. januára 2012 - Revízia: 1.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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
Kľúčové slová: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2651992 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:2651992

Odošlite odozvu

 

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