Поделиться через


Каскадная модель RealTimeStylus

Каскадная модель RealTimeStylus позволяет использовать два объекта RealTimeStylus, каждый из которых выполняется в другом потоке. С помощью этой модели вы присоединяете вторичный объект RealTimeStylus к основному объекту RealTimeStylus. Дополнительный объект RealTimeStylus подключен как единственный асинхронный подключаемый модуль в коллекции асинхронных подключаемых модулей основного объекта RealTimeStylus.

Каскадная модель RealTimeStylus может оказаться полезной в следующих сценариях.

  • Вы можете добавить определенные задачи, которые могут быть требовательными к вычислительным ресурсам, но при этом требуют доступа в режиме реального времени к потоку данных пера планшета, например распознавание многократных жестов, в синхронную коллекцию подключаемых модулей вторичного объекта RealTimeStylus.
  • Вы можете распределить вычислительную нагрузку синхронных подключаемых модулей по двум потокам, уменьшая задержки в сборе рукописных данных на некоторых компьютерах планшетов.

На следующей схеме показан поток данных пера планшета через два каскадных объекта RealTimeStylus и их коллекции плагинов.

иллюстрация, показывающая каскадный поток данных realtimestylus

На этой схеме круг с буквой "A" представляет данные пера планшета, которые уже обработаны основным и вторичным объектами RealTimeStylus и помещены в очередь выходных данных вторичного объекта RealTimeStylus. Круг с буквой "B" представляет данные пера планшета, которые уже обработаны основным объектом RealTimeStylus и добавлены в очередь вывода основного объекта RealTimeStylus, и еще не отправлены в дополнительный объект RealTimeStylus. Круг с буквой "C" представляет данные пера планшета, которые в настоящее время обрабатываются основным объектом RealTimeStylus. Отправляется в коллекцию синхронных плагинов и размещается в выходной очереди. Пустой круг представляет позицию в выходной очереди, в которой добавляются будущие данные пера планшета.

Ограничения

Если вы используете конструкторпо умолчаниюRealTimeStylus, создайте объект RealTimeStylus, который может принимать входные данные только из другого объекта RealTimeStylus.

В следующем списке описываются ограничения, связанные с использованием каскадной модели RealTimeStylus.

  • Можно использовать только два объекта RealTimeStylus: основной объект RealTimeStylus и дополнительный объект RealTimeStylus.
  • Основной объект RealTimeStylus должен быть создан с помощью конструктора, использующего параметр прикрепленного Control или дескриптора. Вторичный объект RealTimeStylus должен быть создан конструктором без параметров.
  • Дополнительный объект RealTimeStylus должен быть единственным асинхронным подключаемым модулем в коллекции асинхронных подключаемых модулей основного объекта RealTimeStylus.
  • Дополнительный объект RealTimeStylus может быть присоединен только к одному основному объекту RealTimeStylus одновременно. Если он добавляется ко второму основному объекту RealTimeStylus, метод Add создает исключение, а вторичный объект RealTimeStylus не присоединяется ко второму основному объекту RealTimeStylus.
  • Поведение некоторых вторичных членов объекта RealTimeStylus изменяется. В следующей таблице описывается измененное поведение этих элементов.
Член Поведение
ПолучитьОписаниеЖелаемогоПакета Этот метод возвращает сведения из основного объекта RealTimeStylus.
Если вторичный RealTimeStylus не присоединен к основному объекту RealTimeStylus, этот метод возвращает значение по умолчанию.
SetDesiredPacketDescription Этот метод вызывает исключение InvalidOperationException.
GetStyluses Этот метод возвращает сведения из основного объекта RealTimeStylus.
Если вторичный RealTimeStylus не присоединен к основному объекту RealTimeStylus, этот метод возвращает пустой массив.
включено Получение этого свойства возвращает сведения из основного объекта RealTimeStylus.
Если вторичный RealTimeStylus не присоединен к основному объекту RealTimeStylus, то получение этого свойства возвращает значение по умолчанию.
Примечание: При задании этого свойства возникает исключение InvalidOperationException.
WindowInputRectangle Получение этого свойства возвращает сведения из основного объекта RealTimeStylus.
Если вторичный RealTimeStylus не присоединен к основному объекту RealTimeStylus, то получение этого свойства возвращает значение по умолчанию.
Примечание: Установка этого свойства приведет к выбросу исключения InvalidOperationException.
  • Ожидается, что родительский объект RealTimeStylus прекратит функционировать, когда дочерний RealTimeStylus будет ликвидирован.