Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poniżej przedstawiono ogólne zagadnienia dotyczące wątków podczas opracowywania aplikacji dla komputerów Tablet.
- Wątki aplikacji i niezwiązane z aplikacjami
- zagadnienia dotyczące wydajności
- Zagadnienia dotyczące wątków zdarzeń
- Tematy pokrewne
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.
- Metoda Recognizekontrolki InkEdit zgłasza rozpoznawania (tylko biblioteka zarządzana) lub RecognitionResult (tylko automatyzacja) w wątku interfejsu użytkownika.
- Metody RecognizerContext obiektu BackgroundRecognize i BackgroundRecognizeWithAlternates wywołują zdarzenia Recognition i RecognitionWithAlternates na 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.