Objawy

Może wystąpić jeden z następujących problemów podczas renderowania grafiki przy użyciu systemu Windows Presentation Foundation (WPF) w.NET Framework 3.5 z dodatkiem Service Pack 1 (SP1)-aplikacja oparta na.

Problem 1

Gdy zmieniasz wartość właściwości VisualBrush.Visual w aplikacji WPF, awarie aplikacji.

Problem 2

W wątku renderowania aplikacji WPF występuje przeciek pamięci, gdy wykonasz jedną z następujących czynności:

  • Renderowanie sceny 3D, który zawiera obiektu VisualBrush lub obiektu DrawingBrush za pomocą potoku renderowania programowego. Na przykład używasz potoku renderowania programowego gdy wykonasz jedną z następujących czynności:

    • Renderuj prezentację za pomocą klasy RenderTargetBitmap .

    • Drukowanie sceny.

    • Właściwość warstwy renderowania równa 0.

    • Renderuj prezentację przez połączenie pulpitu zdalnego.

  • Sceny renderowania przy użyciu klasy WriteableBitmap na komputerze, który nie używa systemu Windows Display Driver Model (WDDM).

  • Renderowania sceny przy użyciu rozmieszczony sąsiadująco obiektu VisualBrush lub obiektu DrawingBrush rozmieszczony sąsiadująco na komputerze, który nie używa WDDM za pomocą potoku renderowania sprzętowego.

Problem 3

Aplikacji WPF, które używają wielowarstwowe awarii systemu windows, gdy wykonasz jedną z następujących czynności:

  • Umieścić komputer, który korzysta z systemu Windows XP wyświetlania Driver Model (XPDDM) w stan wstrzymania, a następnie wznowieniu pracy komputera ze stanu wstrzymania.

  • Możesz przełączyć się do trybu pełnego ekranu konsoli w systemie Windows XP.

Przyczyna

Przyczyny 1

Ten problem występuje, ponieważ jest zwracany błąd rodzajowy z wątku renderowania, podczas operacji w wątku są sortowane nieprawidłowo. Te operacje powodują obiektów podrzędnych do odłączenia od obiektu nadrzędnego null.Na przykład obiekt wizualny musi być usuwany z obiektu VisualBrush , zanim jest odłączana od obiektu VisualBrush . Jednak operacje usunięcia obiektu wizualne mogą być sortowane nieprawidłowo. W związku z tym obiekt wizualny odłączy się od obiektu nadrzędnego null.

Przyczyny 2

Ten problem występuje z powodu błędu w wątku renderowania zliczanie.

Przyczyny 3

Ten problem występuje, ponieważ kod błędu Win32 jest obsługiwane niepoprawnie.

Rozwiązanie

Aby rozwiązać ten problem, należy zastosować pakiet poprawki opisanej w następującym artykule bazy wiedzy Microsoft Knowledge Base:2667241 Pakiet zbiorczy aktualizacji jest dostępna dla Windows Presentation Foundation (WPF) dla programu Microsoft.NET Framework 3.5

Więcej informacji

Informacje wyjściowe stosu

System.InvalidOperationException: An unspecified error occurred on the render thread.at System.Windows.Media.MediaContext.NotifyPartitionIsZombie(Int32 failureCode)at System.Windows.Media.MediaContext.NotifyChannelMessage()at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam)at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.