La aplicación WPF se bloquea cuando se usan fuentes de más de 100 pts de tamaño

Este artículo le ayuda a resolver el problema por el que la aplicación deja de responder y se bloquea indefinidamente.

Se aplica a: .NET Framework 3.5 Service Pack 1
Número de KB original: 2712383

Síntoma

Tiene una aplicación Microsoft .NET 3.5 Window Presentation Framework (WPF), que usa caracteres grandes o fuentes. La aplicación deja de responder y se bloquea indefinidamente.

Causa

El subproceso de interfaz de usuario de Windows Presentation Framework ha escrito una sección crítica denominada bloqueo de composición. Mientras el subproceso de interfaz de usuario mantiene este bloqueo, debe sincronizar la comunicación con el subproceso de representación de Windows Presentation Framework. El subproceso de representación está procesando un carácter grande cuando necesita entrar en el bloqueo de composición. Puesto que el subproceso de interfaz de usuario tiene el bloqueo de composición, el subproceso de representación lo espera y los subprocesos se interbloqueen.

Hemos confirmado que se trata de un error en Microsoft .NET 3.5 Framework.

Solución

Este error se ha corregido en Microsoft .NET 4.0 Framework. Para solucionar este error, evite usar caracteres o fuentes grandes, o actualice la aplicación para que tenga como destino Microsoft .NET 4.0 Framework.

Más información

En el síntoma anterior, definimos grande para significar un carácter con un tamaño efectivo de 100 pt o mayor, siendo 100 pt el umbral de error. Efectivo hace referencia a multiplicar el tamaño de fuente por cualquier transformación. El umbral tiene en cuenta las transformaciones que podrían estar en vigor y el efecto de la configuración de PPP del equipo. Por ejemplo, si usa una fuente Arial de 60 puntos dentro del ámbito de un RenderTransform que se escala verticalmente por un factor de 2, el tamaño efectivo es de 120 pt, que supera el límite de umbral de 100 pt.