Sintomi
Che si verifichi uno dei seguenti problemi quando si esegue il rendering di grafica utilizzando Windows Presentation Foundation (WPF) in.NET Framework 3.5 Service Pack 1 (SP1)-applicazione basata su.
Problema 1
Quando si modifica il valore della proprietà VisualBrush.Visual in un'applicazione WPF, l'applicazione si blocca.
Problema 2
Si verifica una perdita di memoria nel thread di rendering di un'applicazione WPF, quando si effettua una delle seguenti operazioni:
-
Utilizzare la pipeline di rendering del software per il rendering di una scena 3D che include un oggetto VisualBrush o un oggetto DrawingBrush . Ad esempio, si utilizza la pipeline di rendering del software quando si effettua una delle seguenti operazioni:
-
Si esegue il rendering della scena utilizzando la classe RenderTargetBitmap .
-
Si stampa la scena.
-
Impostare la proprietà di livello di rendering su 0.
-
Si esegue il rendering della scena su una connessione desktop remoto.
-
-
Si esegue il rendering di una scena utilizzando la classe WriteableBitmap in un computer che non utilizza la visualizzazione del modello WDDM (Windows Driver).
-
Utilizzare la pipeline di rendering hardware per il rendering di una scena utilizzando un oggetto VisualBrush affiancato o un oggetto DrawingBrush affiancato in un computer che non utilizza WDDM.
Problema 3
Le applicazioni WPF che utilizzano finestre sovrapposte si bloccano quando si esegue una delle seguenti operazioni:
-
Inserire un computer che utilizza Windows XP Display Driver Model (XPDDM) in standby e quindi si riprende il computer dalla modalità standby.
-
Passare alla modalità console a schermo intero in Windows XP.
Causa
Causa 1
Questo problema si verifica perché un errore generico viene restituito da un thread di rendering quando le operazioni nel thread vengono ordinate in modo non corretto. Queste operazioni che gli oggetti figlio di disconnettersi da un oggetto padre null.
Ad esempio, un oggetto visivo da rimuovere da un oggetto VisualBrush prima è scollegato dall'oggetto VisualBrush . Tuttavia, possibile ordinare correttamente le operazioni per rimuovere l'oggetto visivo . Di conseguenza, l'oggetto visivo si disconnette da un oggetto padre null.Causa 2
Questo problema si verifica a causa di un errore nel thread di rendering di conteggio dei riferimenti.
Causa 3
Questo problema si verifica perché un codice di errore Win32 non viene gestito correttamente.
Risoluzione
Per risolvere questo problema, applicare l'hotfix descritto nel seguente articolo della Microsoft Knowledge Base:2667241 Un aggiornamento cumulativo è disponibile per Windows Presentation Foundation (WPF) per Microsoft.NET Framework 3.5
Ulteriori informazioni
Output dello stack
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)
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".