Partilhar via


Considerações gerais sobre encadeamento

As seguintes são considerações gerais sobre o manuseio de threads ao desenvolver para Tablet PC.

Threads de aplicativos e não aplicativos

Todos os eventos de tinta são gerados num fio de tinta separado e de alta prioridade. Isso permite que a tinta flua suavemente, mesmo quando um aplicativo está sendo executado lentamente. No entanto, os manipuladores de eventos podem diminuir ou bloquear a renderização de tinta.

Todos os eventos de reconhecimento gerados por chamadas de método de reconhecimento em segundo plano são tratados em uma thread separada de reconhecimento em segundo plano, com prioridade normal.

Todos os eventos do mouse são gerados no thread principal da interface do usuário (UI) do aplicativo.

Considerações sobre desempenho

Gestores de Eventos

A interface de programação de aplicativos (API) da plataforma Tablet PC tem um modelo interativo para eventos em vez de um modelo de notificação. Mantenha o código nos manipuladores de eventos curto(s) para reduzir o tempo em que a renderização de tinta está bloqueada. A coleta de tinta pelo Tablet PC não é bloqueada, mas seu aplicativo não recebe a tinta enquanto o aplicativo está bloqueado.

Propriedade AutoRedraw

Quando o seu aplicativo está a executar renderização personalizada ou é sensível a problemas de pintura, pode-se manipular a repintura por conta própria, podendo definir a propriedade AutoRedraw para falso no objeto InkCollector, no objeto InkOverlay ou no controlo InkPicture. Use os eventos na tabela seguinte para gerir a repintura.

Objeto ou controle Evento
objeto de InkCollector
O controle subjacente tem os eventos Control.Invalidated e Control.Paint.
InkOverlay objeto
Os eventos do controle subjacente Control.Invalidated e Control.Paint.
Controlador InkPicture
InkPicture controlo herdou os eventos Control.Invalidated e Control.Paint.

Propriedade DynamicRendering

Quando seu aplicativo está executando renderização personalizada ou quando você deseja as informações, mas não a tinta, você mesmo pode lidar com a colocação de tinta e desativar a renderização de tinta em tempo real definindo a propriedade DynamicRendering como falso para o objetoInkCollector, o objetoInkOverlay, ou o controle de InkPicture.

Considerações sobre o encadeamento de eventos

Os eventos da API da plataforma Tablet PC são gerados em várias threads.

Eventos de objetos InkCollector e InkOverlay

A maioria dos eventos de objeto, como InkCollector e InkOverlay , são gerados no thread de tinta. Somente os eventos do mouse para esses objetos são gerados no thread da interface do usuário. Por exemplo, para o objeto InkCollector, o evento MouseDown é gerado no thread da interface do usuário e o evento CursorDown é gerado no thread de tinta.

Eventos da coleção Ink Object and Strokes

Os eventos Ink object e Strokes collection podem vir do thread de tinta ou do thread da interface do usuário. Quando a sua aplicação manipula o objeto Ink ou a coleção de Strokes , o evento é gerado no thread da interface do utilizador. Quando o InkCollector ou o InkOverlay atualiza o objeto Ink ou a coleção Strokes, o evento é gerado na thread de tinta.

Os controles InkPicture e InkEdit operam em um apartamento de thread único (STA). Quando o controle InkPicture ou InkEdit atualiza o objeto Ink ou coleção de Strokes, o evento é gerado no thread da interface do usuário.

Eventos de Reconhecimento

Os eventos de reconhecimento são gerados no thread da interface do usuário ou no thread de reconhecimento em segundo plano.

Eventos do painel de entrada de caneta no ecrã tátil

PenInputPanel eventos são gerados no thread no qual o PenInputPanel objeto é criado.

Microsoft.Ink.InkCollector.DynamicRendering

Microsoft.Ink.InkOverlay.DynamicRendering

Microsoft.Ink.InkPicture.DynamicRendering

Microsoft.Ink.InkCollector.AutoRedraw

Microsoft.Ink.InkOverlay.AutoRedraw

Microsoft.Ink.InkPicture.AutoRedraw