Partager via


Considérations générales relatives aux threads

Les éléments suivants sont des considérations générales relatives au threading lors du développement pour Tablet PC.

Threads d’application et non-application

Tous les événements d’encre sont générés sur un thread d’encre à priorité élevée distinct. Cela permet à l’entrée manuscrite de circuler en douceur, même lorsqu’une application s’exécute lentement. Toutefois, les gestionnaires d’événements peuvent ralentir ou bloquer le rendu de l’entrée manuscrite.

Tous les événements de reconnaissance générés par les appels de méthode de reconnaissance en arrière-plan sont gérés sur un thread distinct de reconnaissance en arrière-plan de priorité normale.

Tous les événements de souris sont générés sur le thread d’interface utilisateur main de l’application.

Considérations relatives aux performances

Gestionnaires d'événements

L’interface de programmation d’application (API) tablet PC Platform a un modèle interactif pour les événements plutôt qu’un modèle de notification. Gardez le code dans les gestionnaires d’événements court pour réduire le temps de blocage du rendu manuscrit. La collection d’encre par le Tablet PC n’est pas bloquée, mais votre application ne reçoit pas l’entrée manuscrite tant que votre application est bloquée.

AutoRedraw, propriété

Lorsque votre application effectue un rendu personnalisé ou que votre application est sensible aux problèmes de peinture, vous pouvez gérer le repeint vous-même et définir la propriété AutoRedraw sur false pour l’objet InkCollector , l’objet InkOverlay ou le contrôle InkPicture . Utilisez les événements du tableau suivant pour gérer le repeint.

Objet ou contrôle Événement
Inkcollector Objet
Les événements Control.Invalidated et Control.Paint du contrôle sous-jacent.
Inkoverlay Objet
Les événements Control.Invalidated et Control.Paint du contrôle sous-jacent.
Inkpicture Contrôle
Événements Control.Invalidated et Control.Paint hérités du contrôle InkPicture.

DynamicRendering, propriété

Lorsque votre application effectue un rendu personnalisé ou que vous souhaitez obtenir les informations, mais pas l’encre, vous pouvez gérer vous-même la pose de l’encre et désactiver le rendu en temps réel de l’encre en définissant la propriété DynamicRendering sur false pour l’objet InkCollector , l’objet InkOverlay ou le contrôle InkPicture .

Considérations relatives aux threads d’événements

Les événements de l’API Plateforme Tablet PC sont déclenchés sur différents threads.

Événements d’objets InkCollector et InkOverlay

La plupart des événements d’objet InkCollector et InkOverlay sont déclenchés sur le thread d’encre. Seuls les événements de souris pour ces objets sont déclenchés sur le thread d’interface utilisateur. Par exemple, pour l’objet InkCollector , l’événement MouseDown est déclenché sur le thread d’interface utilisateur et l’événement CursorDown est déclenché sur le thread d’encre.

Événements de collection d’objets ink et de traits

L’objet Ink et les événements de collection Strokes peuvent provenir du thread d’encre ou du thread d’interface utilisateur. Lorsque votre application manipule l’objet Ink ou la collection Strokes , l’événement est généré dans le thread d’interface utilisateur. Lorsque l’objet InkCollector ou InkOverlay met à jour l’objet Ink ou la collection Strokes , l’événement est généré dans le thread d’encre.

Les contrôles InkPicture et InkEdit fonctionnent dans un appartement à thread unique (STA). Lorsque le contrôle InkPicture ou InkEdit met à jour l’objet Ink ou la collection Strokes , l’événement est déclenché sur le thread d’interface utilisateur.

Événements de reconnaissance

Les événements de reconnaissance sont déclenchés sur le thread d’interface utilisateur ou le thread de reconnaissance en arrière-plan.

Événements du panneau d’entrée de stylet

Les événements PenInputPanel sont déclenchés sur le thread dans lequel l’objet PenInputPanel est créé.

Microsoft.Ink.InkCollector.DynamicRendering

Microsoft.Ink.InkOverlay.DynamicRendering

Microsoft.Ink.InkPicture.DynamicRendering

Microsoft.Ink.InkCollector.AutoRedraw

Microsoft.Ink.InkOverlay.AutoRedraw

Microsoft.Ink.InkPicture.AutoRedraw