Condividi tramite


Considerazioni sul threading COM e di automazione

Le seguenti considerazioni sul threading tablet PC sono specifiche quando vengono usati Component Object Model (COM) e Automazione.

Thread safety

Ad eccezione dei controlli InkPicture e InkEdit , gli oggetti Tablet PC sono thread-safe e sono contrassegnati come entrambi. Contrassegnato come entrambi, possono essere eseguiti in un singolo appartamento threaded (STA) o in un appartamento multithreaded (MTA).

Windows Form usa il modello STA perché windows form si basa su finestre Win32 native che sono intrinsecamente thread di appartamento.

Applicazioni STA e MTA

Se l'applicazione viene eseguita in un MTA o usa il marshalling threaded gratuito (FTM), è necessario scrivere codice thread-safe; tuttavia, in questo modo è possibile migliorare determinati problemi di prestazioni di gestione degli eventi.

InkCollector e InkOverlay

L'applicazione non deve rilasciare il riferimento finale all'oggetto InkCollector o all'oggetto InkOverlay , eliminando così l'oggetto direttamente dal thread dell'input penna. L'applicazione deve invece rilasciare l'oggetto InkCollector o InkOverlay da un thread dell'applicazione.

Attenzione: Un'applicazione contrassegnata come MTA o usa FTM, che consente chiamate dirette dal thread penna nell'appartamento dell'applicazione, può rilasciare il riferimento finale all'oggetto InkCollector o InkOverlay direttamente dal thread penna; tuttavia, ciò causa un errore dell'applicazione non recuperabile.

Sink eventi

Se l'applicazione non usa FTM e un oggetto e il relativo sink eventi vengono creati in appartamenti diversi, l'evento viene eseguito nel thread di manutenzione del sink di eventi.

Eccezioni all'interno dei gestori eventi

Le eccezioni generate dall'interno dei gestori eventi tablet PC vengono usate e non sono visibili al resto o all'applicazione. Analogamente, i valori HRESULT non vengono propagati dai gestori eventi tablet PC. Se un'applicazione che usa il livello COM genera un'eccezione, il thread in background termina e l'eccezione verrà persa. Non verranno chiamati gestori di eventi aggiuntivi.

Esempio di sink di eventi C++

Considerazioni generali sul threading

Considerazioni sul threading della libreria gestita