Symptomer
Du kan opleve følgende problemer, når du gengiver grafik ved hjælp af WPF (Windows Presentation Foundation) i et program .NET Framework 3.5 Service Pack 1 (SP1).
Udgave 1
Når du ændrer værdien af egenskaben VisualBrush.Visual i et WPF-program, går programmet ned.
Udgave 2
Der opstår en hukommelsesfejl i gengivelsestråden i et WPF-program, når du udfører en af følgende handlinger:
Du bruger pipelinen til softwaregengivelse til at gengive en 3D-scene, der indeholder et VisualBrush-objekt eller en DrawingBrush-objekt. Hvis du f.eks. bruger pipelinen til softwaregengivelse, når du udfører en af følgende handlinger:
- Du gengiver scenen ved hjælp af klassen RenderTargetBitmap.
- Du udskriver scenen.
- Du angiver egenskaben for gengivelsesniveau til 0.
- Du gengiver scenen via en forbindelse til Fjernskrivebord.
Du gengiver en scene ved hjælp af klassen WriteableBitmap på en computer, der ikke bruger WDDM (Windows Display Driver Model).
Du bruger hardwaregengivelsespipelinen til at gengive en scene ved hjælp af et VisualBrush-objekt i side eller en Tegningspensel-objekt i side på en computer, der ikke bruger WDDM.
Udgave 3
WPF-programmer, der bruger lagdelte vinduer, går ned, når du udfører en af følgende handlinger:
- Du sætter en computer, der bruger XPDDM (Windows XP Display Driver Model), i standby, og derefter fortsætter du computeren fra standby.
- Du skifter til fuldskærmskonsoltilstand på Windows XP.
Årsag
Årsag 1
Dette problem opstår, fordi der returneres en generisk fejl fra en gengivelsestråd, når handlingerne i tråden er placeret forkert. Disse handlinger medfører, at underordnede objekter fjernes fra et overordnet null-objekt.
Et visuelt objekt skal f.eks. fjernes fra et VisualBrush-objekt, før det fjernes fra VisualBrush-objektet. Handlingerne til fjernelse af visualobjektet kan dog være placeret forkert. Det visuelle objekt løsnes derfor fra et overordnet null-objekt.
Årsag 2
Dette problem opstår på grund af en referenceoptællingsfejl i gengivelsestråden.
Årsag 3
Dette problem opstår, fordi en Win32-fejlkode håndteres forkert.
Løsning
Du kan løse dette problem ved at anvende den hotfixpakke, der er beskrevet i følgende artikel i Microsoft Knowledge Base:
2667241 Der findes en opdateringspakke til Windows Presentation Foundation (WPF) til Microsoft .NET Framework 3.5
Flere oplysninger
Stak output
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)
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".