Cascaded 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物件。
- 必須使用使用 attachedControl或handle參數的建構函式來建立主要RealTimeStylus物件。 必須使用 no-argument 建構函式來建立次要 RealTimeStylus 物件。
- 次要 RealTimeStylus 物件必須是主要 RealTimeStylus 物件非同步外掛程式集合中唯一的非同步外掛程式。
- 次要 RealTimeStylus 物件一次只能附加至一個主要 RealTimeStylus 物件。 如果將它新增至第二個主要 RealTimeStylus 物件, Add 方法會擲回例外狀況,而且次要 RealTimeStylus 物件不會附加至第二個主要 RealTimeStylus 物件。
- 修改某些次要 RealTimeStylus 物件成員的行為。 下表描述這些成員的修改行為。
成員 | 行為 |
---|---|
GetDesiredPacketDescription | 這個方法會從主要 RealTimeStylus 物件傳回信息。 如果次要 RealTimeStylus 未附加至主要 RealTimeStylus 物件,這個方法會傳回預設值。 |
SetDesiredPacketDescription | 這個方法會引發 InvalidOperationException 例外狀況 。 |
GetStyluses | 這個方法會從主要 RealTimeStylus 物件傳回信息。 如果次要 RealTimeStylus 未附加至主要 RealTimeStylus 物件,這個方法會傳回空陣列。 |
Enabled | 取得此屬性會從主要 RealTimeStylus 物件傳回信息。 如果次要 RealTimeStylus 未附加至主要 RealTimeStylus 物件,則取得此屬性會傳回預設值。 注意: 設定此屬性會引發 InvalidOperationException 例外狀況 。 |
WindowInputRectangle | 取得此屬性會從主要 RealTimeStylus 物件傳回信息。 如果次要 RealTimeStylus 未附加至主要 RealTimeStylus 物件,則取得此屬性會傳回預設值。 注意: 設定此屬性會引發 InvalidOperationException 例外狀況 。 |
- 父 RealTimeStylus 物件預期會在處置子 RealTimeStylus 時停止運作。