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.

Abbildung eines kaskadierten Echtzeitdatenflusses

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.