次の方法で共有


カスケードされた RealTimeStylus モデル

カスケードされた RealTimeStylus モデルを使用すると、それぞれ異なるスレッドで実行されている 2 つの RealTimeStylus オブジェクトを使用できます。 このモデルでは、セカンダリ RealTimeStylus オブジェクトをプライマリ RealTimeStylus オブジェクトにアタッチします。 セカンダリ RealTimeStylus オブジェクトは、プライマリ RealTimeStylus オブジェクトの非同期プラグイン コレクション内の唯一の非同期プラグインとしてアタッチされます。

カスケードされた RealTimeStylus モデルは、次のシナリオで役立つ場合があります。

  • 計算が要求される可能性がある特定のタスクを追加しても、マルチストローク ジェスチャ認識などのタブレット ペンのデータ ストリームへのリアルタイム アクセスが必要な場合は、セカンダリ RealTimeStylus オブジェクトの同期プラグイン コレクションに追加できます。
  • 同期プラグインの計算負荷を 2 つのスレッドに分散できるため、一部のタブレット PC でのインク収集の遅延を減らすことができます。

次の図は、2 つのカスケードされた RealTimeStylus オブジェクトとそのプラグイン コレクションを介したタブレット ペン データのフローを示しています。

カスケードされたリアルタイム データ フローを示す図

この図では、"A" という文字が付いた円は、プライマリ オブジェクトとセカンダリ RealTimeStylus オブジェクトの両方によって既に処理され、セカンダリ RealTimeStylus オブジェクトの出力キューに配置されているタブレット ペン データを表します。 "B" という円は、プライマリ RealTimeStylus オブジェクトによって既に処理され、プライマリ RealTimeStylus オブジェクトの出力キューに追加され、セカンダリ RealTimeStylus オブジェクトにまだ送信されていないタブレット ペン データを表します。 "C" という円は、プライマリ RealTimeStylus オブジェクトが現在処理しているタブレット ペン データを表します。 同期プラグイン コレクションに送信され、出力キューに配置されます。 空の円は、将来のタブレット ペン データが追加される出力キュー内の位置を表します。

制約

既定の RealTimeStylus コンストラクターを使用する場合は、別の RealTimeStylus オブジェクトからの入力のみを受け入れることができる RealTimeStylus オブジェクトを 作成します。

次の一覧では、カスケードされた RealTimeStylus モデルの使用に関連する制約について説明します。

  • 使用できる RealTimeStylus オブジェクトは、プライマリ RealTimeStylus オブジェクトとセカンダリ RealTimeStylus オブジェクトの 2 つだけです。
  • プライマリ RealTimeStylus オブジェクトは、 attachedControl または handle パラメーターを使用するコンストラクターを使用して作成する必要があります。 セカンダリ RealTimeStylus オブジェクトは、引数なしのコンストラクターを使用して作成する必要があります。
  • セカンダリ RealTimeStylus オブジェクトは、プライマリ RealTimeStylus オブジェクトの非同期プラグイン コレクション内の唯一の非同期プラグインである必要があります。
  • セカンダリ RealTimeStylus オブジェクトは、一度に 1 つのプライマリ RealTimeStylus オブジェクトにのみアタッチできます。 2 番目のプライマリ RealTimeStylus オブジェクトに追加された場合、 Add メソッドは例外をスローし、セカンダリ RealTimeStylus オブジェクトは 2 番目のプライマリ RealTimeStylus オブジェクトにアタッチされません。
  • セカンダリ RealTimeStylus オブジェクトのメンバーの一部の動作が変更されます。 次の表では、これらのメンバーの変更された動作について説明します。
メンバー 動作
GetDesiredPacketDescription このメソッドは、プライマリ RealTimeStylus オブジェクトから情報を返します。
セカンダリ RealTimeStylus がプライマリ RealTimeStylus オブジェクトにアタッチされていない場合、このメソッドは既定値を返します。
SetDesiredPacketDescription このメソッドは 、InvalidOperationException 例外を発生させます。
GetStyluses このメソッドは、プライマリ RealTimeStylus オブジェクトから情報を返します。
セカンダリ RealTimeStylus がプライマリ RealTimeStylus オブジェクトにアタッチされていない場合、このメソッドは空の配列を返します。
有効 このプロパティを取得すると、プライマリ RealTimeStylus オブジェクトから情報が返されます。
セカンダリ RealTimeStylus がプライマリ RealTimeStylus オブジェクトにアタッチされていない場合、このプロパティを取得すると既定値が返されます。
メモ: このプロパティを設定すると、 InvalidOperationException 例外が発生します。
WindowInputRectangle このプロパティを取得すると、プライマリ RealTimeStylus オブジェクトから情報が返されます。
セカンダリ RealTimeStylus がプライマリ RealTimeStylus オブジェクトにアタッチされていない場合、このプロパティを取得すると既定値が返されます。
メモ: このプロパティを設定すると、 InvalidOperationException 例外が発生します。
  • RealTimeStylus オブジェクトは、子 RealTimeStylus が破棄されると機能しなくなります。