Gejala
Anda mungkin mengalami salah satu masalah berikut ini saat menyajikan grafik menggunakan Windows Presentation Foundation (WPF) dalam aplikasi berbasis .NET Framework 3.5 Service Pack 1 (SP1).
Masalah 1
Saat Anda mengubah nilai properti VisualBrush.Visual dalam aplikasi WPF, aplikasi mengalami crash.
Masalah 2
Kebocoran memori terjadi di utas render aplikasi WPF ketika Anda melakukan salah satu tindakan berikut:
Anda menggunakan saluran penyajian perangkat lunak untuk menyajikan adegan 3D yang menyertakan objek VisualBrush atau objek DrawingBrush. Misalnya, Anda menggunakan saluran penyajian perangkat lunak saat melakukan salah satu tindakan berikut:
- Anda merender adegan dengan menggunakan kelas RenderTargetBitmap.
- Anda mencetak adegan.
- Anda mengatur properti tingkat penyajian ke 0.
- Anda merender scene melalui koneksi desktop jarak jauh.
Anda menyajikan adegan dengan menggunakan kelas WriteableBitmap di komputer yang tidak menggunakan Windows Display Driver Model (WDDM).
Anda menggunakan pipa penyajian perangkat keras untuk merender adegan dengan menggunakan objek VisualBrush yang bertingkat atau objek DrawingBrush bertingkat di komputer yang tidak menggunakan WDDM.
Masalah 3
Aplikasi WPF yang menggunakan windows crash berlapis saat Anda melakukan salah satu tindakan berikut:
- Anda meletakkan komputer yang menggunakan Windows XP Display Driver Model (XPDDM) menjadi siaga, lalu Anda melanjutkan komputer dari siaga.
- Anda beralih ke mode konsol layar penuh di Windows XP.
Penyebab
Penyebab 1
Masalah ini terjadi karena kesalahan generik dikembalikan dari utas render saat operasi dalam utas diurutkan secara tidak benar. Operasi ini menyebabkan objek turunan terlepas dari objek induk null.
Misalnya, objek Visual harus dihapus dari objek VisualBrush sebelum dilepas dari objek VisualBrush. Namun, operasi untuk menghapus objek Visual mungkin diurutkan dengan tidak benar. Oleh karena itu, objek Visual terlepas dari objek induk null.
Penyebab 2
Masalah ini terjadi karena kesalahan penghitungan referensi dalam utas penyajian.
Penyebab 3
Masalah ini terjadi karena kode kesalahan Win32 ditangani dengan tidak benar.
Resolusi
Untuk mengatasi masalah ini, terapkan paket hotfix yang dijelaskan dalam artikel Pangkalan Pengetahuan Microsoft berikut ini:
2667241 Rollup pembaruan tersedia untuk Windows Presentation Foundation (WPF) untuk Microsoft .NET Framework 3.5
Informasi Selengkapnya
Output tumpukan
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 telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".