Das kaskadierte RealTimeStylus-Modell
Mit dem kaskadierten RealTimeStylus-Modell können Sie zwei RealTimeStylus-Objekte verwenden, die jeweils in einem anderen Thread ausgeführt werden. Mit diesem Modell fügen Sie ein sekundäres RealTimeStylus-Objekt an ein primäres RealTimeStylus-Objekt an. Das sekundäre RealTimeStylus-Objekt wird als einziges asynchrones Plug-In in der asynchronen Plug-In-Auflistung des primären RealTimeStylus-Objekts angefügt.
Das kaskadierte RealTimeStylus-Modell kann in den folgenden Szenarien nützlich sein.
- Sie können der synchronen Plug-In-Auflistung des sekundären RealTimeStylus-Objekts bestimmte Aufgaben hinzufügen, die möglicherweise rechenintensiv sind, aber dennoch Echtzeitzugriff auf den Datenstrom des Tablet-Stifts erfordern, z. B. die Erkennung mehrerer Gesten.
- Sie können die Rechenlast Ihrer synchronen Plug-Ins auf zwei Threads verteilen, wodurch Verzögerungen bei der Freihandsammlung auf einigen Tablet-PCs verringert werden.
Das folgende Diagramm veranschaulicht den Fluss von Tablet-Stiftdaten durch zwei kaskadierte RealTimeStylus-Objekte und deren Plug-In-Auflistungen.
In diesem Diagramm stellt der Kreisbuchstaben "A" Tablet-Stiftdaten dar, die bereits von den primären und sekundären RealTimeStylus-Objekten verarbeitet wurden und in der Ausgabewarteschlange des sekundären RealTimeStylus-Objekts platziert wurden. Der Kreisbuchstaben "B" stellt Tablet-Stiftdaten dar, die bereits vom primären RealTimeStylus-Objekt verarbeitet und der Ausgabewarteschlange des primären RealTimeStylus-Objekts hinzugefügt wurden und noch nicht an das sekundäre RealTimeStylus-Objekt gesendet wurden. Der Kreisbuchstaben "C" stellt die Tablet-Stiftdaten dar, die das primäre RealTimeStylus-Objekt derzeit verarbeitet. Sie wird an die synchrone Plug-In-Auflistung gesendet und in der Ausgabewarteschlange platziert. Der leere Kreis stellt die Position in der Ausgabewarteschlange dar, an der zukünftige Tablet-Stiftdaten hinzugefügt werden.
Einschränkungen
Wenn Sie den Standard-RealTimeStylus-Konstruktor verwenden, erstellen Sie ein RealTimeStylus-Objekt , das nur Eingaben von einem anderen RealTimeStylus-Objekt akzeptieren kann.
In der folgenden Liste werden die Einschränkungen beschrieben, die der Verwendung des kaskadierten RealTimeStylus-Modells zugeordnet sind.
- Es können nur zwei RealTimeStylus-Objekte verwendet werden, ein primäres RealTimeStylus-Objekt und ein sekundäres RealTimeStylus-Objekt .
- Das primäre RealTimeStylus-Objekt muss mit einem Konstruktor erstellt werden, der den angefügtenControl- oder handle-Parameter verwendet. Das sekundäre RealTimeStylus-Objekt muss mit dem Konstruktor ohne Argument erstellt werden.
- Das sekundäre RealTimeStylus-Objekt muss das einzige asynchrone Plug-In in der asynchronen Plug-In-Auflistung des primären RealTimeStylus-Objekts sein.
- Ein sekundäres RealTimeStylus-Objekt kann jeweils nur an ein primäres RealTimeStylus-Objekt angefügt werden. Wenn es einem zweiten primären RealTimeStylus-Objekt hinzugefügt wird, löst die Add-Methode eine Ausnahme aus, und das sekundäre RealTimeStylus-Objekt wird nicht an das zweite primäre RealTimeStylus-Objekt angefügt.
- Das Verhalten einiger Elemente des sekundären RealTimeStylus-Objekts wird geändert. In der folgenden Tabelle wird das geänderte Verhalten dieser Member beschrieben.
Mitglied | Verhalten |
---|---|
GetDesiredPacketDescription | Diese Methode gibt die Informationen aus dem primären RealTimeStylus-Objekt zurück. Wenn das sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt diese Methode den Standardwert zurück. |
SetDesiredPacketDescription | Diese Methode löst eine InvalidOperationException-Ausnahme aus. |
GetStyluses | Diese Methode gibt die Informationen aus dem primären RealTimeStylus-Objekt zurück. Wenn das sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt diese Methode ein leeres Array zurück. |
Aktiviert | Beim Abrufen dieser Eigenschaft werden die Informationen aus dem primären RealTimeStylus-Objekt zurückgegeben. Wenn das sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt das Abrufen dieser Eigenschaft den Standardwert zurück. Hinweis: Durch Festlegen dieser Eigenschaft wird eine InvalidOperationException-Ausnahme ausgelöst. |
WindowInputRectangle | Beim Abrufen dieser Eigenschaft werden die Informationen aus dem primären RealTimeStylus-Objekt zurückgegeben. Wenn das sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt das Abrufen dieser Eigenschaft den Standardwert zurück. Hinweis: Durch Festlegen dieser Eigenschaft wird eine InvalidOperationException-Ausnahme ausgelöst. |
- Es wird erwartet, dass das übergeordnete RealTimeStylus-Objekt nicht mehr funktioniert, wenn das untergeordnete RealTimeStylus-Objekt verworfen wird.