2011-04-19 10 views
7

Estoy experimentando un problema descrito en this thread.Problema de rendimiento de WPF debido a la automatización de la interfaz de usuario

dotTrace me dijo "Stylus Input" era culpable. enter image description here

me trataron the code Publicado por Ron Z y Chaim Zonnenberg, pero no funcionó.

Rash sugirieron 2 soluciones:

  1. código de automatización se activará sólo si hay cualquier cliente de automatización (como el lector de pantalla, tabtip en los Tablet PC, etc.) que se ejecuta en la máquina. Entonces, una forma de salir de esta situación es cerrar cualquiera de esas aplicaciones de cliente de automatización.

  2. Si no es posible, una alternativa es UIElementHelper.InvalidateAutomationAncestors llevará más tiempo solo si el árbol de automatización de la aplicación es escaso (sucede si se ha desactivado el árbol de automatización del edificio utilizando un par de automatización de ventanas personalizado) y el árbol visual es denso . Entonces, otra solución es deshabilitar cualquier código de automatización personalizado y permitir que WPF genere un árbol de automatización completo. Esto también debería acelerar UIElementHelper.InvalidateAutomationAncestors.

Pero, ¿cómo cerrar tabtip? Traté de detener y deshabilitar los siguientes servicios, pero no funcionó, Tabtip.exe se sigue ejecutando en segundo plano:

  • Servicio de entrada de Tablet PC
  • TabletServicePen

Rash dicho esta cuestión debería ser resuelto en .NET 4.0 SP1. ¿Alguien sabe la fecha de lanzamiento de .NET 4.0 SP1?

Estoy utilizando Visual Studio 2010, Windows 7 de 64 bits, Wacom Graphire 4.

Gracias


Actualizar:

para cerrar Tabtip.exe sólo hay que reiniciar Windows después de deshabilitar los servicios antes mencionados. Pero esto solo no resolvió mi problema. Para solucionar el problema de rendimiento, también tengo que deshabilitar "Wacom Consumer Touch Service".

Y de acuerdo con this thread (22 de marzo de 2011):

there is no published timeline for .NET Framework 4.0 sp1

Respuesta

0

recientemente he tenido que lidiar con este problema exacto usando una herramienta de WPF en nuestro proyecto.

La máquina donde estaba ocurriendo el bloqueo ejecuta .NET Framework 4.5.

Cuando la herramienta se bloqueaba, podíamos ver el bloqueo que se producía en .NET PresentationFramework UIAutomation. La excepción de bloqueo fue: Se produjo una excepción de primera oportunidad del tipo 'System.ArgumentOutOfRangeException' en PresentationFramework.dll -> en este punto el error parecía estar.NET Framework

Pero luego pudimos ver la pila que bloqueamos en una llamada de UIAutomation, que nos llevó a este hilo y supuso que los servicios de Wacom estaban activando este módulo.

El controlador Wacom que se ejecuta en la máquina donde la aplicación se bloquea era: la tableta Wacom 6.3.1w3 después de degradar a la versión anterior que todo comenzó a trabajar: WacomTablet_6.3.3-4

Ahora que sabíamos que la fuente de el problema comenzamos a buscar una solución para poder seguir usando el último controlador. Así que aquí está y lo que es bueno es que no parece afectar la funcionalidad de la tableta wacom: - Vaya al Panel de control. - Haga doble clic en Programas y características - Haga clic en el enlace de la izquierda titulado Activar o desactivar las características de Windows - Cuando se cargue, desmarque 'Componentes opcionales de Tablet PC' (Puede denominarse 'Componentes de Tablet PC' en Windows 7) . - Haz clic en el botón Aceptar. Esto podría requerir que reinicie su máquina de Windows.

Y ese fue el truco para nosotros.

¡Diviértete!

Cuestiones relacionadas