Considerazioni generali sul threading
Di seguito sono riportate considerazioni generali sul threading durante lo sviluppo per tablet PC.
- Thread applicazione e non applicazione
- Considerazioni sulle prestazioni
- Considerazioni sul threading degli eventi
- Argomenti correlati
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.
- Il metodo Riconoscimento del controllo InkEdit genera l'evento Recognition (solo Libreria gestita) o RecognitionResult (solo automazione) nel thread dell'interfaccia utente.
- I metodi BackgroundRecognize e BackgroundRecognizeWithAlternates dell'oggetto RecognizerContext generano gli eventi Recognition e RecognitionWithAlternates 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 .