Threadingüberlegungen für die StylusInput-API

Das RealTimeStylus-Objekt ist für den Echtzeitzugriff auf den Datenstrom vom Tablet-Stift aus konzipiert. Plug-Ins, Objekte, die die IStylusSyncPlugin - oder IStylusAsyncPlugin-Schnittstelle implementieren, können einem RealTimeStylus-Objekt hinzugefügt werden. Synchrone Plug-Ins werden im Allgemeinen direkt vom RealTimeStylus-Objekt in einem Thread mit hoher Priorität aufgerufen, während asynchrone Plug-Ins im Allgemeinen im Benutzeroberflächenthread der Anwendung aufgerufen werden. Erstellen oder verwenden Sie synchrone Plug-Ins für Aufgaben, die Echtzeitzugriff auf den Datenstrom erfordern und rechnerisch anspruchslos sind, z. B. Paketfilterung. Erstellen oder verwenden Sie asynchrone Plug-Ins für Aufgaben, die keinen Echtzeitzugriff auf den Datenstrom erfordern, z. B. die Freihandsammlung.

Da die Plug-In-Daten für die asynchrone Plug-In-Auflistung des RealTimeStylus-Objekts in die Warteschlange eingereiht werden, empfangen asynchrone Plug-Ins möglicherweise Daten vor dem Empfang eines Aufrufs der RealTimeStylusDisabled-Methode , aber nach der Deaktivierung des RealTimeStylus-Objekts . Beachten Sie, dass einige Methoden und Eigenschaften des RealTimeStylus-Objekts eine Ausnahme auslösen, wenn das RealTimeStylus-Objekt deaktiviert ist.

Die folgenden IStylusSyncPlugin-Schnittstellenmethoden können in einem anderen Thread als dem Tablet-Stiftdatenthread aufrufen.

Um mit Ihrer Anwendung über ein synchrones Plug-In zu interagieren, verwenden Sie die AddCustomStylusDataToQueue-Methode des RealTimeStylus-Objekts , und verarbeiten Sie die benutzerdefinierten Eingabestiftdaten in einem Ihrer asynchronen Plug-Ins. Wenn Sie einen synchronen Aufruf eines anderen Threads von einem synchronen Plug-In ausführen, können Sie das RealTimeStylus-Objekt und damit die Freihandsammlung blockieren.

Bestimmte Aufgaben sind möglicherweise rechenintensiv, erfordern aber dennoch Echtzeitzugriff auf den Datenstrom des Tablet-Stifts, z. B. für die Erkennung von Mehrfachgesten. Die StylusInput-APIs stellen ein kaskadiertes RealTimeStylus-Modell bereit, mit dem Sie zwei RealTimeStylus-Objekte verwenden können, von denen jedes seine synchronen Plug-Ins aus verschiedenen Threads aufruft. Weitere Informationen zum kaskadierten RealTimeStylus-Modell finden Sie unter Das kaskadierte RealTimeStylus-Modell.

Hinweis

Sie können das RealTimeStylus-Objekt nicht in einem anderen Prozess an ein Fenster oder Steuerelement anfügen.

 

Weitere Informationen zu Threadingüberlegungen für den Tablet-PC im Allgemeinen finden Sie unter Überlegungen zum Threading von Tablet-PCs.