Allgemeine Überlegungen zum Threading

Im Folgenden finden Sie allgemeine Überlegungen zum Threading bei der Entwicklung für Tablet PC.

Anwendungsthreads und Nichtanwendungsthreads

Alle Ink-Ereignisse werden in einem separaten Ink-Thread mit hoher Priorität generiert. Dies ermöglicht einen reibungslosen Fluss der Ink-Funktion, auch wenn eine Anwendung langsam ausgeführt wird. Ereignishandler können jedoch das Rendern von Ink verlangsamen oder blockieren.

Alle Erkennungsereignisse, die von Methodenaufrufen der Hintergrunderkennung generiert werden, werden in einem separaten Hintergrunderkennungsthread mit normaler Priorität behandelt.

Alle Mausereignisse werden im Hauptthread der Benutzeroberfläche der Anwendung generiert.

Überlegungen zur Leistung

Ereignishandler

Die Anwendungsprogrammierschnittstelle (Application Programming Interface, API) der Tablet PC-Plattform verfügt über ein interaktives Modell für Ereignisse und nicht über ein Benachrichtigungsmodell. Halten Sie Code in Ereignishandlern kurz, um die Zeit zu reduzieren, die das Rendern von Ink-Daten blockiert. Die Sammlung von Ink durch den Tablet-PC wird nicht blockiert, aber Ihre Anwendung erhält die Ink nicht, während Ihre Anwendung blockiert ist.

AutoRedraw-Eigenschaft

Wenn Ihre Anwendung benutzerdefiniertes Rendering vorsteuert oder wenn Ihre Anwendung auf Probleme beim Malen reagieren kann, können Sie die Neuzeichnung selbst durchführen und die AutoRedraw-Eigenschaft für das InkCollector-Objekt, das InkOverlay-Objekt oder das InkPicture-Steuerelement auf FALSE festlegen. Verwenden Sie die Ereignisse in der folgenden Tabelle, um die Neupaintierung zu behandeln.

Objekt oder Steuerelement Ereignis
InkCollector Objekt
Die Ereignisse Control.Invalidated und Control.Paint des zugrunde liegenden Steuerelements.
InkOverlay Objekt
Die Ereignisse Control.Invalidated und Control.Paint des zugrunde liegenden Steuerelements.
InkPicture Steuerung
Die geerbten Control.Invalidated- und Control.Paint-Ereignisse des InkPicture-Steuerelements.

DynamicRendering-Eigenschaft

Wenn Ihre Anwendung benutzerdefiniertes Rendering vorsteuert oder wenn Sie die Informationen, aber nicht die Ink-Eigenschaft, verwenden möchten, können Sie die InkOverlay-Darstellung selbst verarbeiten und das Echtzeitrendering von InkPicture deaktivieren, indem Sie die DynamicRendering-Eigenschaft für das InkCollector-Objekt, das InkOverlay-Objekt oder das InkPicture-Steuerelement auf FALSE festlegen.

Überlegungen zum Ereignisthreading

Api-Ereignisse der Tablet PC-Plattform werden in verschiedenen Threads ausgelöst.

InkCollector- und InkOverlay Objects-Ereignisse

Die meisten InkCollector- und InkOverlay-Objektereignisse werden im Ink-Thread ausgelöst. Nur die Mausereignisse für diese Objekte werden im UI-Thread ausgelöst. Für das InkCollector-Objekt wird beispielsweise das MouseDown-Ereignis im UI-Thread ausgelöst, und das CursorDown-Ereignis wird im Ink-Thread ausgelöst.

Ink Object and Strokes Collection Events

Die Ink-Objekt- und Strokes-Auflistungsereignisse können aus dem Ink-Thread oder dem UI-Thread stammen. Wenn Ihre Anwendung das Ink-Objekt oder die Strokes-Auflistung bearbeitet, wird das Ereignis im UI-Thread generiert. Wenn der InkCollector oder das InkOverlay-Objekt das Ink-Objekt oder die Strokes-Auflistung aktualisiert, wird das Ereignis im Ink-Thread generiert.

Die Steuerelemente InkPicture und InkEdit arbeiten in einem Singlethread-Apartment (STA). Wenn das InkPicture- oder InkEdit-Steuerelement das Ink-Objekt oder die Strokes-Auflistung aktualisiert, wird das -Ereignis im UI-Thread ausgelöst.

Erkennungsereignisse

Erkennungsereignisse werden im UI-Thread oder im Hintergrunderkennungsthread ausgelöst.

Stifteingabebereichsereignisse

PenInputPanel-Ereignisse werden in dem Thread ausgelöst, in dem das PenInputPanel-Objekt erstellt wird.

Microsoft.Ink.InkCollector.DynamicRendering

Microsoft.Ink.InkOverlay.DynamicRendering

Microsoft.Ink.InkPicture.DynamicRendering

Microsoft.Ink.InkCollector.AutoRedraw

Microsoft.Ink.InkOverlay.AutoRedraw

Microsoft.Ink.InkPicture.AutoRedraw