Considérations relatives aux threads pour l’API StylusInput
L’objet RealTimeStylus est conçu pour fournir un accès en temps réel au flux de données à partir du stylet tablette. Les plug-ins, les objets qui implémentent l’interface IStylusSyncPlugin ou IStylusAsyncPlugin peuvent être ajoutés à un objet RealTimeStylus . Les plug-ins synchrones sont généralement appelés directement par l’objet RealTimeStylus sur un thread de haute priorité, tandis que les plug-ins asynchrones sont généralement appelés sur le thread d’interface utilisateur de l’application. Créez ou utilisez des plug-ins synchrones pour les tâches qui nécessitent un accès en temps réel au flux de données et qui ne sont pas exigeantes en matière de calcul, telles que le filtrage de paquets. Créez ou utilisez des plug-ins asynchrones pour les tâches qui ne nécessitent pas d’accès en temps réel au flux de données, comme la collecte d’encre.
Étant donné que les données de plug-in pour la collection de plug-ins asynchrones de l’objet RealTimeStylus sont mises en file d’attente, les plug-ins asynchrones peuvent recevoir des données avant de recevoir un appel à sa méthode RealTimeStylusDisabled , mais après la désactivation de l’objet RealTimeStylus . Notez que certaines méthodes et propriétés de l’objet RealTimeStylus lèvent une exception si l’objet RealTimeStylus est désactivé.
Les méthodes d’interface IStylusSyncPlugin suivantes peuvent appeler sur un thread autre que le thread de données du stylet de tablette.
- Les méthodes RealTimeStylusEnabled et RealTimeStylusDisabled sont appelées sur le thread qui met à jour la propriété Enabled de l’objet RealTimeStylus ou qui ajoute ou supprime le plug-in lorsque l’objet RealTimeStylus est activé.
- La méthode CustomStylusDataAdded est appelée sur le thread qui appelle la méthode AddCustomStylusDataToQueue de l’objetRealTimeStylus.
- La méthode Error est appelée sur le thread sur lequel le plug-in synchrone s’exécute lorsqu’il lève une exception.
Pour interagir avec votre application à partir d’un plug-in synchrone, utilisez la méthode AddCustomStylusDataToQueue de l’objet RealTimeStylus et gérez les données de stylet personnalisées dans l’un de vos plug-ins asynchrones. Si vous effectuez un appel synchrone à un autre thread à partir d’un plug-in synchrone, vous pouvez bloquer l’objet RealTimeStylus et donc bloquer la collection d’encre.
Certaines tâches peuvent être exigeantes sur le point de vue du calcul, mais nécessitent tout de même un accès en temps réel au flux de données du stylet de tablette, par exemple pour la reconnaissance de mouvements en plusieurs touches. Les API StylusInput fournissent un modèle RealTimeStylus en cascade qui vous permet d’utiliser deux objets RealTimeStylus , chacun appelant ses plug-ins synchrones à partir de threads différents. Pour plus d’informations sur le modèle RealTimeStylus en cascade, consultez Le modèle RealTimeStylus en cascade.
Notes
Vous ne pouvez pas attacher l’objet RealTimeStylus à une fenêtre ou un contrôle dans un autre processus.
Pour plus d’informations sur les considérations relatives aux threads pour le Tablet PC en général, consultez Considérations relatives aux threads Tablet PC