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 bestimmte Aufgaben hinzufügen, die rechenintensiv sein können, aber dennoch Echtzeitzugriff auf den Datenstrom des Tablettstifts erfordern, z. B. die Erkennung von Multistrokegesten, auf die synchrone Plug-In-Sammlung des sekundären RealTimeStylus-Objekts.
  • Sie können die Rechenlast Ihrer synchronen Plug-Ins auf zwei Threads verteilen, um Verzögerungen bei der Ink-Sammlung auf einigen Tablet-PCs zu reduzieren.

Das folgende Diagramm veranschaulicht den Fluss von Tablettstiftdaten durch zwei kaskadierte RealTimeStylus-Objekte und deren Plug-In-Sammlungen.

Abbildung des kaskadierten Echtzeit-Datenflusses

In diesem Diagramm stellt der Kreis mit dem Buchstaben "A" Tablettstiftdaten dar, die bereits von den primären und sekundären RealTimeStylus-Objekten verarbeitet und in der Ausgabewarteschlange des sekundären RealTimeStylus-Objekts platziert wurden. Der Kreis mit dem Buchstaben "B" stellt Tablettstiftdaten 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 Kreis mit dem Buchstaben "C" stellt die Tablettstiftdaten dar, die das primäre RealTimeStylus-Objekt derzeit verarbeitet. Sie wird an die synchrone Plug-In-Sammlung gesendet und in der Ausgabewarteschlange platziert. Der leere Kreis stellt die Position in der Ausgabewarteschlange dar, an der zukünftige Tablettstiftdaten hinzugefügt werden.

Einschränkungen

Wenn Sie den Standardkonstruktor RealTimeStylus 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 attachedControl- 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 nur an ein primäres RealTimeStylus-Objekt gleichzeitig 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 ist nicht an das zweite primäre RealTimeStylus-Objekt angefügt.
  • Das Verhalten einiger Member des sekundären RealTimeStylus-Objekts wird geändert. In der folgenden Tabelle wird das geänderte Verhalten dieser Member beschrieben.
Member Verhalten
GetDesiredPacketDescription Diese Methode gibt die Informationen aus dem primären RealTimeStylus-Objekt zurück.
Wenn der 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 der 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 der sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt das Abrufen dieser Eigenschaft den Standardwert zurück.
[!Note]
Das Festlegen dieser Eigenschaft löst eine InvalidOperationException-Ausnahme aus.

WindowInputRectangle Beim Abrufen dieser Eigenschaft werden die Informationen aus dem primären RealTimeStylus-Objekt zurückgegeben.
Wenn der sekundäre RealTimeStylus nicht an ein primäres RealTimeStylus-Objekt angefügt ist, gibt das Abrufen dieser Eigenschaft den Standardwert zurück.
[!Note]
Das Festlegen dieser Eigenschaft löst eine InvalidOperationException-Ausnahme aus.

  • Es wird erwartet, dass das übergeordnete RealTimeStylus-Objekt nicht mehr funktioniert, wenn der untergeordnete RealTimeStylus verworfen wird.