Consideraciones generales sobre subprocesos
A continuación se muestran consideraciones generales sobre subprocesos al desarrollar para tablet PC.
- Subprocesos de aplicación y no de aplicación
- Consideraciones de rendimiento
- Consideraciones sobre subprocesos de eventos
- Temas relacionados
Subprocesos de aplicación y no de aplicación
Todos los eventos de entrada de lápiz se generan en un subproceso de entrada de lápiz independiente y de alta prioridad. Esto permite que la entrada de lápiz fluya sin problemas incluso cuando una aplicación se ejecuta lentamente. Sin embargo, los controladores de eventos pueden ralentizar o bloquear la representación de la entrada de lápiz.
Todos los eventos de reconocimiento generados por las llamadas al método de reconocimiento en segundo plano se controlan en un subproceso de reconocimiento en segundo plano independiente de prioridad normal.
Todos los eventos del mouse se generan en el subproceso principal de la interfaz de usuario (UI) de la aplicación.
Consideraciones de rendimiento
Controladores de eventos
La interfaz de programación de aplicaciones (API) de la plataforma tablet PC tiene un modelo interactivo para eventos en lugar de un modelo de notificación. Mantenga el código en los controladores de eventos cortos para reducir el tiempo en que se bloquea la representación de entrada de lápiz. La colección de entrada de lápiz del PC tablet no está bloqueada, pero la aplicación no recibe la tinta mientras la aplicación está bloqueada.
AutoRedraw (propiedad)
Cuando la aplicación realiza una representación personalizada o cuando la aplicación es sensible a problemas de pintura, puede controlar el reintentos usted mismo y establecer la propiedad AutoRedraw en false para el objeto InkCollector , el objeto InkOverlay o el control InkPicture . Use los eventos de la tabla siguiente para controlar la reintentos.
Objeto o control | Evento |
---|---|
InkCollector Objeto |
Eventos Control.Invalidated y Control.Paint del control subyacente. |
InkOverlay Objeto |
Eventos Control.Invalidated y Control.Paint del control subyacente. |
InkPicture Control |
Los eventos Control.Invalidated y Control.Paint heredados del control InkPicture. |
DynamicRendering (propiedad)
Cuando la aplicación realiza una representación personalizada o cuando desea la información, pero no la entrada de lápiz, puede controlar la puesta de lápiz usted mismo y desactivar la representación en tiempo real de la entrada de lápiz estableciendo la propiedad DynamicRendering en false para el objeto InkCollector , el objeto InkOverlay o el control InkPicture .
Consideraciones sobre subprocesos de eventos
Los eventos de api de plataforma de PC tableta se generan en varios subprocesos.
Eventos de objetos InkCollector y InkOverlay
La mayoría de los eventos de objeto InkCollector y InkOverlay se generan en el subproceso de entrada de lápiz. Solo se generan los eventos del mouse para estos objetos en el subproceso de la interfaz de usuario. Por ejemplo, para el objeto InkCollector , el evento MouseDown se genera en el subproceso de la interfaz de usuario y el evento CursorDown se genera en el subproceso de entrada de lápiz.
Eventos de colección de objetos y trazos de lápiz
El objeto Ink y los eventos de colección Strokes pueden provenir del subproceso de entrada de lápiz o del subproceso de la interfaz de usuario. Cuando la aplicación manipula el objeto Ink o la colección Strokes, el evento se genera en el subproceso de la interfaz de usuario. Cuando inkCollector o el objeto InkOverlay actualizan el objeto Ink o la colección Strokes , el evento se genera en el subproceso de entrada de lápiz.
Los controles InkPicture y InkEdit funcionan en un apartamento de un solo subproceso (STA). Cuando el control InkPicture o InkEdit actualiza el objeto Ink o la colección Strokes , el evento se genera en el subproceso de la interfaz de usuario.
Eventos de reconocimiento
Los eventos de reconocimiento se generan en el subproceso de interfaz de usuario o en el subproceso de reconocimiento en segundo plano.
- El método Recognize del control InkEdit genera el evento Recognition (solo biblioteca administrada) o RecognitionResult (solo Automation) en el subproceso de la interfaz de usuario.
- Los métodos BackgroundRecognize y BackgroundRecognizeWithAlternates del objeto RecognizerContext generan los eventos Recognition y RecognitionWithAlternates en el subproceso de reconocimiento en segundo plano.
Eventos del panel de entrada del lápiz
Los eventos PenInputPanel se generan en el subproceso en el que se crea el objeto PenInputPanel .