Considerações gerais sobre Threading

A seguir estão as considerações gerais de Threading ao desenvolver para o Tablet PC.

Aplicativos e threads que não são de aplicativo

Todos os eventos de tinta são gerados em um thread de tinta separado e de alta prioridade. Isso permite que a tinta flua suavemente mesmo quando um aplicativo está em execução lenta. No entanto, os manipuladores de eventos podem diminuir ou bloquear a renderização da tinta.

Todos os eventos de reconhecimento gerados pelas chamadas de método de reconhecimento em segundo plano são tratados em um thread de reconhecimento em segundo plano de prioridade normal separado.

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

Considerações sobre desempenho

Manipuladores de eventos

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

Propriedade de redesenhot

Quando seu aplicativo estiver executando renderização personalizada ou quando seu aplicativo for sensível a problemas de pintura, você poderá lidar com a repintura por conta própria e definir a propriedade AutoRedraw como false para o objeto InkCollector , o objeto InkOverlay ou o controle InkPicture . Use os eventos na tabela a seguir para lidar com a repintura.

Objeto ou controle Evento
InkCollector Objeto
Os eventos Control. Invalidated e Control. Paint do controle subjacente.
InkOverlay Objeto
Os eventos Control. Invalidated e Control. Paint do controle subjacente.
InkPicture Controlo
Controle herdado do controle InkPicture . eventos invalidados e Control. Paint .

Propriedade DynamicRendering

Quando seu aplicativo estiver executando renderização personalizada ou quando você quiser as informações, mas não a tinta, você poderá lidar com a tinta por conta própria e desativar a renderização em tempo real da tinta definindo a propriedade DynamicRendering como false para o objeto InkCollector , o objeto InkOverlay ou o controle InkPicture .

Considerações sobre Threading de eventos

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

Eventos de objetos InkCollector e InkOverlay

A maioria dos eventos de objeto 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 de coleção de traços e objetos de tinta

Os eventos de coleção de traços e objetos de tinta podem vir do thread de tinta ou do thread de interface do usuário. Quando o aplicativo manipula o objeto de tinta ou a coleção de traços , o evento é gerado no thread da interface do usuário. Quando o InkCollector ou o objeto InkOverlay atualiza o objeto de tinta ou a coleção de traços , o evento é gerado no thread de tinta.

Os controles InkPicture e InkEdit operam em um STA (single-threaded apartment). Quando o controle InkPicture ou InkEdit atualiza o objeto de tinta ou a coleção de traços , 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 da caneta

Os eventos PenInputPanel são gerados no thread em que o objeto PenInputPanel é 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