共用方式為


COM 和自動化執行緒考慮

使用元件物件模型 (COM) 和自動化時,有下列平板電腦執行緒考慮。

執行緒安全性

除了 InkPictureInkEdit 控制項之外,平板電腦物件是安全線程,並標示為兩者。 藉由標示為兩者,他們可以在單一線程 Apartment (STA) 或多執行緒 Apartment (MTA) 中執行。

Windows Forms 會使用 STA 模型,因為 Windows 表單是以原生 Win32 視窗為基礎,原本就是 Apartment 執行緒。

STA 和 MTA 應用程式

如果您的應用程式在 MTA 中執行,或使用自由執行緒封送處理器 (FTM) ,您必須撰寫安全線程程式碼;不過,如此一來,您可以改善特定事件處理效能問題。

InkCollector 和 InkOverlay

您的應用程式不應該釋放其 InkCollectorInkOverlay 物件的最終參考,因此會直接從筆跡執行緒終結物件。 相反地,應用程式應該從應用程式執行緒釋放 InkCollectorInkOverlay 物件。

謹慎: 標示為 MTA 或使用 FTM 的應用程式,允許從筆跡執行緒直接呼叫應用程式的 Apartment,可以直接從筆跡執行緒釋放對 InkCollectorInkOverlay 物件的最終參考;不過,這會導致無法復原的應用程式失敗。

事件接收

如果您的應用程式未使用 FTM,而且物件及其事件接收是在不同的 Apartment 中建立,則事件會在維護事件接收的執行緒上執行。

事件處理常式內的例外狀況

從 Tablet PC 事件處理常式內擲回的例外狀況是取用的,而且其餘部分或您的應用程式看不到。 同樣地,HRESULT 值不會從平板電腦事件處理常式傳播。 如果使用 COM 層的應用程式擲回例外狀況,背景執行緒就會終止,而且例外狀況將會遺失。 不會呼叫其他事件處理常式。

C++ 事件接收範例

一般執行緒考慮

Managed 程式庫執行緒考慮