Condividi tramite


Considerazioni generali sul threading

Di seguito sono riportate considerazioni generali sul threading durante lo sviluppo per tablet PC.

Thread applicazione e non applicazione

Tutti gli eventi dell'input penna vengono generati in un thread input penna separato e con priorità elevata. Ciò consente all'input penna di scorrere senza problemi anche quando un'applicazione è in esecuzione lentamente. Tuttavia, i gestori eventi possono rallentare o bloccare il rendering dell'input penna.

Tutti gli eventi di riconoscimento generati dalle chiamate al metodo di riconoscimento in background vengono gestiti in un thread di riconoscimento in background con priorità normale separato.

Tutti gli eventi del mouse vengono generati nel thread principale dell'interfaccia utente dell'applicazione.

Considerazioni sulle prestazioni

Gestori di eventi

L'interfaccia di programmazione dell'applicazione Tablet PC Platform (API) ha un modello interattivo per gli eventi anziché un modello di notifica. Mantenere il codice nei gestori eventi breve per ridurre il tempo di blocco del rendering dell'input penna. La raccolta di input penna da tablet PC non è bloccata, ma l'applicazione non riceve l'input penna mentre l'applicazione è bloccata.

AutoRedraw, proprietà

Quando l'applicazione esegue il rendering personalizzato o quando l'applicazione è sensibile ai problemi di disegno, è possibile gestire il repainting autonomamente e impostare la proprietà AutoRedraw su false per l'oggetto InkCollector , l'oggetto InkOverlay o il controllo InkPicture . Usare gli eventi nella tabella seguente per gestire il repainting.

Oggetto o controllo Evento
Inkcollector Oggetto
Eventi Control.Invalidated e Control.Paint del controllo sottostante.
Inkoverlay Oggetto
Eventi Control.Invalidated e Control.Paint del controllo sottostante.
Inkpicture Controllo
Eventi Control.Invalidated e Control.Paint ereditati del controllo InkPicture.

DynamicRendering, proprietà

Quando l'applicazione esegue il rendering personalizzato o quando si desiderano le informazioni, ma non l'input penna, è possibile gestire la disposizione dell'input penna manualmente e disattivare il rendering in tempo reale dell'input penna impostando la proprietà DynamicRendering su false per l'oggetto InkCollector , l'oggetto InkOverlay o il controllo InkPicture .

Considerazioni sul threading degli eventi

Gli eventi dell'API della piattaforma TABLET PC vengono generati in vari thread.

Eventi degli oggetti InkCollector e InkOverlay

La maggior parte degli eventi dell'oggetto InkCollector e InkOverlay viene generata nel thread penna. Solo gli eventi del mouse per questi oggetti vengono generati nel thread dell'interfaccia utente. Ad esempio, per l'oggetto InkCollector , l'evento MouseDown viene generato nel thread dell'interfaccia utente e l'evento CursorDown viene generato nel thread penna.

Eventi dell'insieme Ink Object and Strokes

Gli eventi dell'insieme Ink e Strokes possono derivare dal thread penna o dal thread dell'interfaccia utente. Quando l'applicazione modifica l'oggetto Ink o l'insieme Strokes , l'evento viene generato nel thread dell'interfaccia utente. Quando l'oggetto InkCollector o InkOverlay aggiorna l'oggetto Ink o l'insieme Strokes , l'evento viene generato nel thread penna.

I controlli InkPicture e InkEdit operano in un appartamento a thread singolo (STA). Quando il controllo InkPicture o InkEdit aggiorna l'oggetto Ink o l'insieme Strokes , l'evento viene generato nel thread dell'interfaccia utente.

Eventi di riconoscimento

Gli eventi di riconoscimento vengono generati nel thread dell'interfaccia utente o nel thread di riconoscimento in background.

Eventi del pannello di input penna

Gli eventi PenInputPanel vengono generati nel thread in cui viene creato l'oggetto PenInputPanel .

Microsoft.Ink.InkCollector.DynamicRendering

Microsoft.Ink.InkOverlay.DynamicRendering

Microsoft.Ink.InkPicture.DynamicRendering

Microsoft.Ink.InkCollector.AutoRedraw

Microsoft.Ink.InkOverlay.AutoRedraw

Microsoft.Ink.InkPicture.AutoRedraw