การแก้ไข: คุณอาจพบปัญหาหลายอย่างเมื่อคุณแสดงกราฟิกโดยใช้ Windows Presentation Foundation (WPF) ในแอปพลิเคชันที่ใช้ .NET Framework 3.5 SP1

นำไปใช้กับ
.NET Framework 3.5 Service Pack 1

      
    

อาการ

คุณอาจพบปัญหาอย่างใดอย่างหนึ่งต่อไปนี้เมื่อคุณแสดงกราฟิกโดยใช้ Windows Presentation Foundation (WPF) ในแอปพลิเคชันที่ใช้ .NET Framework 3.5 Service Pack 1 (SP1)

ปัญหาที่ 1

เมื่อคุณเปลี่ยนค่าของคุณสมบัติ VisualBrush.Visual ในแอปพลิเคชัน WPF แอปพลิเคชันจะหยุดทํางาน

ปัญหาที่ 2

หน่วยความจําพร่องขาดไปเกิดขึ้นในเธรดการแสดงของแอปพลิเคชัน WPF เมื่อคุณดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้:

  • คุณสามารถใช้ไปป์ไลน์การแสดงภาพซอฟต์แวร์เพื่อแสดงฉาก 3 มิติที่มีวัตถุ VisualBrush หรือวัตถุ DrawingBrush ตัวอย่างเช่น คุณกําลังใช้ไปป์ไลน์การแสดงซอฟต์แวร์เมื่อคุณดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้:

    • คุณแสดงฉากโดยใช้คลาส RenderTargetBitmap
    • คุณพิมพ์ฉาก
    • คุณตั้งค่าคุณสมบัติระดับการแสดงเป็น 0
    • คุณแสดงฉากผ่านการเชื่อมต่อเดสก์ท็อประยะไกล
  • คุณแสดงฉากโดยใช้คลาส WriteableBitmap บนคอมพิวเตอร์ที่ไม่ได้ใช้ Windows Display Driver Model (WDDM)

  • คุณสามารถใช้ไปป์ไลน์การแสดงภาพฮาร์ดแวร์เพื่อแสดงฉากโดยใช้วัตถุ VisualBrush แบบเรียงต่อกันหรือวัตถุ DrawingBrush แบบเรียงต่อกันบนคอมพิวเตอร์ที่ไม่ได้ใช้ WDDM

          

ปัญหาที่ 3

แอปพลิเคชัน WPF ที่ใช้ Windows Crash แบบเลเยอร์เมื่อคุณดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้:

  • คุณทําให้คอมพิวเตอร์ที่ใช้ Windows XP Display Driver Model (XPDDM) เข้าสู่โหมดสแตนด์บาย และจากนั้น คุณกลับสู่การทํางานจากโหมดสแตนด์บาย
  • คุณสลับไปยังโหมดคอนโซลแบบเต็มหน้าจอบน Windows XP

สาเหตุ

สาเหตุที่ 1

ปัญหานี้เกิดขึ้นเนื่องจากข้อผิดพลาดทั่วไปถูกส่งกลับจากเธรดแสดงผลเมื่อการดําเนินการในเธรดถูกเรียงลําดับอย่างไม่ถูกต้อง การดําเนินการเหล่านี้ทําให้วัตถุลูกแยกออกจากวัตถุแม่ที่เป็น Null

ตัวอย่างเช่น วัตถุ Visual ต้องถูกเอาออกจากวัตถุ VisualBrush ก่อนที่จะถูกแยกออกจากวัตถุ VisualBrush อย่างไรก็ตาม การดําเนินการเพื่อเอาวัตถุ Visual อาจเรียงลําดับอย่างไม่ถูกต้อง ดังนั้น วัตถุ Visual จะแยกออกจากวัตถุแม่ที่เป็น Null

สาเหตุที่ 2

ปัญหานี้เกิดขึ้นเนื่องจากมีข้อผิดพลาดในการนับการอ้างอิงในเธรดการแสดง

สาเหตุที่ 3

ปัญหานี้เกิดขึ้นเนื่องจากรหัสข้อผิดพลาด Win32 ได้รับการจัดการอย่างไม่ถูกต้อง

การแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ให้ใช้แพคเกจโปรแกรมแก้ไขด่วนที่อธิบายไว้ในบทความต่อไปนี้ของ Microsoft Knowledge Base:

2667241 ชุดรวมอัปเดตพร้อมใช้งานสําหรับ Windows Presentation Foundation (WPF) สําหรับ Microsoft .NET Framework 3.5

ข้อมูลเพิ่มเติม

ผลลัพธ์สแตก

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)

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"