Modèle RealTimeStylus en cascade
Le modèle RealTimeStylus en cascade vous permet d’utiliser deux objets RealTimeStylus , chacun s’exécutant sur un thread différent. Avec ce modèle, vous attachez un objet RealTimeStylus secondaire à un objet RealTimeStylus principal. L’objet RealTimeStylus secondaire est attaché en tant que seul plug-in asynchrone dans la collection de plug-ins asynchrones de l’objet RealTimeStylus principal.
Le modèle RealTimeStylus en cascade peut être utile dans les scénarios suivants.
- Vous pouvez ajouter certaines tâches qui peuvent être exigeantes en matière de calcul tout en nécessitant un accès en temps réel au flux de données du stylet de tablette, comme la reconnaissance de mouvements en plusieurs séquences, à la collection de plug-ins synchrones de l’objet RealTimeStylus secondaire.
- Vous pouvez répartir la charge de calcul de vos plug-ins synchrones sur deux threads, ce qui réduit les retards de collecte d’entrée manuscrite sur certains Pc Tablette.
Le diagramme suivant illustre le flux des données du stylet de tablette à travers deux objets RealTimeStylus en cascade et leurs collections de plug-ins.
Dans ce diagramme, le cercle « A » représente les données du stylet de tablette qui ont déjà été traitées par les objets RealTimeStylus principaux et secondaires et qui ont été placées dans la file d’attente de sortie de l’objet RealTimeStylus secondaire. Le cercle « B » représente les données du stylet tablette qui ont déjà été traitées par l’objet RealTimeStylus principal et ajoutées à la file d’attente de sortie de l’objet RealTimeStylus principal et qui n’ont pas encore été envoyées à l’objet RealTimeStylus secondaire. Le cercle « C » représente les données du stylet de tablette que l’objet RealTimeStylus principal traite actuellement. Il est envoyé à la collection de plug-ins synchrones et placé dans la file d’attente de sortie. Le cercle vide représente la position dans la file d’attente de sortie où les données futures du stylet de tablette sont ajoutées.
Contraintes
Si vous utilisez le constructeur RealTimeStylus par défaut, vous créez un objet RealTimeStylus qui peut uniquement accepter l’entrée d’un autre objet RealTimeStylus .
La liste suivante décrit les contraintes associées à l’utilisation du modèle RealTimeStylus en cascade.
- Seuls deux objets RealTimeStylus peuvent être utilisés, un objet RealTimeStylus principal et un objet RealTimeStylus secondaire.
- L’objet RealTimeStylus principal doit être créé avec un constructeur qui utilise le paramètre attachedControl ou handle . L’objet RealTimeStylus secondaire doit être créé avec le constructeur sans argument.
- L’objet RealTimeStylus secondaire doit être le seul plug-in asynchrone de la collection de plug-ins asynchrones de l’objet RealTimeStylus principal.
- Un objet RealTimeStylus secondaire ne peut être attaché qu’à un seul objet RealTimeStylus principal à la fois. Si elle est ajoutée à un deuxième objet RealTimeStylus principal, la méthode Add lève une exception et l’objet RealTimeStylus secondaire n’est pas attaché au deuxième objet RealTimeStylus principal.
- Le comportement de certains membres de l’objet RealTimeStylus secondaire est modifié. Le tableau suivant décrit le comportement modifié de ces membres.
Membre | Comportement |
---|---|
GetDesiredPacketDescription | Cette méthode retourne les informations de l’objet RealTimeStylus principal. Si le RealTimeStylus secondaire n’est pas attaché à un objet RealTimeStylus principal, cette méthode retourne la valeur par défaut. |
SetDesiredPacketDescription | Cette méthode déclenche une exception InvalidOperationException . |
GetStyluses | Cette méthode retourne les informations de l’objet RealTimeStylus principal. Si le RealTimeStylus secondaire n’est pas attaché à un objet RealTimeStylus principal, cette méthode renvoie un tableau vide. |
Activé | L’obtention de cette propriété renvoie les informations de l’objet RealTimeStylus principal. Si le RealTimeStylus secondaire n’est pas attaché à un objet RealTimeStylus principal, l’obtention de cette propriété renvoie la valeur par défaut. Note: La définition de cette propriété déclenche une exception InvalidOperationException . |
WindowInputRectangle | L’obtention de cette propriété renvoie les informations de l’objet RealTimeStylus principal. Si le RealTimeStylus secondaire n’est pas attaché à un objet RealTimeStylus principal, l’obtention de cette propriété renvoie la valeur par défaut. Note: La définition de cette propriété déclenche une exception InvalidOperationException . |
- L’objet RealTimeStylus parent doit cesser de fonctionner lorsque l’objet RealTimeStylus enfant est supprimé.