Udostępnij przez


Ogólne zagadnienia dotyczące wątków

Poniżej przedstawiono ogólne zagadnienia dotyczące wątków podczas opracowywania aplikacji dla komputerów Tablet.

Wątki aplikacji i wątki niezwiązane z aplikacją

Wszystkie zdarzenia atramentu są generowane w osobnym wątku atramentu o wysokim priorytecie. Dzięki temu atrament może bezproblemowo przepływać nawet wtedy, gdy aplikacja działa wolno. Jednak programy obsługi zdarzeń mogą spowalniać lub blokować renderowanie pisma.

Wszystkie zdarzenia rozpoznawania generowane przez wywołania metody rozpoznawania w tle są obsługiwane na osobnym wątku rozpoznawania tła o normalnym priorytecie.

Wszystkie zdarzenia myszy są generowane w głównym wątku interfejsu użytkownika aplikacji.

Zagadnienia dotyczące wydajności

Programy obsługi zdarzeń

Interfejs programowania aplikacji platformy tabletu (API) zawiera interaktywny model zdarzeń, a nie modelu powiadomień. Aby zredukować czas blokowania renderowania pisma odręcznego, utrzymuj krótki kod w obsłudze zdarzeń. Kolekcja tuszu przez komputer tabletowy nie jest blokowana, ale Twoja aplikacja nie otrzymuje tuszu, gdy jest zablokowana.

Właściwość AutoRedraw

Gdy aplikacja wykonuje renderowanie niestandardowe lub jest wrażliwa na problemy związane z malowaniem, możesz samodzielnie przejąć obsługę przemalowania i ustawić właściwość AutoRedraw na false dla obiektu InkCollector, obiektu InkOverlay lub kontrolki InkPicture. Użyj zdarzeń w poniższej tabeli, aby obsłużyć przemalowanie.

Obiekt lub kontrolka Zdarzenie
Obiekt InkCollector
Zdarzenia kontroli Control.Invalidated i Control.Paint.
obiekt InkOverlay
Zdarzenia bazowej kontroli Control.Invalidated i Control.Paint.
InkPicture, kontrolka
Kontrolka dziedziczy zdarzenia Control.Invalidated oraz Control.Paint.

Właściwość DynamicRendering

Gdy aplikacja wykonuje renderowanie niestandardowe lub gdy chcesz uzyskać informacje, ale nie atrament, możesz samodzielnie obsłużyć układanie pisma odręcznego i wyłączyć renderowanie pisma odręcznego w czasie rzeczywistym, ustawiając właściwośćdynamicRenderingfalse dla obiektu InkCollector, obiektu InkOverlay, lub kontrolkę InkPicture.

Zagadnienia dotyczące wątków zdarzeń

Zdarzenia API platformy Tablet PC są wywoływane w różnych wątkach.

Zdarzenia dla obiektów InkCollector i InkOverlay

Większość zdarzeń InkCollector i InkOverlay jest wywoływana w wątku atramentu. Tylko zdarzenia myszy dla tych obiektów są wywoływane w wątku interfejsu użytkownika. Na przykład w przypadku obiektu InkCollector zdarzenie MouseDown jest wywoływane w wątku interfejsu użytkownika, a zdarzenie CursorDown jest wywoływane w wątku pisma odkowego.

Zdarzenia kolekcji obiektów i pociągnięć pisma odkowego

Obiekt Atrament i zdarzenia kolekcji Pociągnięć mogą pochodzić z wątku atramentowego lub wątku interfejsu użytkownika. Gdy aplikacja manipuluje obiektem Ink lub kolekcją Strokes, zdarzenie jest generowane w wątku interfejsu użytkownika. Gdy obiekt InkCollector lub InkOverlay aktualizuje obiekt Atrament lub Kreski kolekcji, zdarzenie jest generowane w wątku atramentowym.

Kontrolki InkPicture i InkEdit działają w modelu STA (Single-Threaded Apartment). Gdy kontrolka InkPicture lub InkEdit aktualizuje obiekt lub kolekcję pociągnięć , zdarzenie jest zgłaszane w wątku interfejsu użytkownika.

Zdarzenia rozpoznawania

Zdarzenia związane z rozpoznawaniem są wywoływane w wątku interfejsu użytkownika lub w wątku rozpoznawania w tle.

Zdarzenia panelu wprowadzania piórem

zdarzenia PenInputPanel są wywoływane w wątku, w którym tworzony jest obiekt PenInputPanel.

Microsoft.Ink.InkCollector.DynamicRendering

Microsoft.Ink.InkOverlay.DynamicRendering

Microsoft.Ink.InkPicture.DynamicRendering

Microsoft.Ink.InkCollector.AutoRedraw

Microsoft.Ink.InkOverlay.AutoRedraw

Microsoft.Ink.InkPicture.AutoRedraw