Partager via


Considérations relatives aux threads COM et Automation

Les considérations suivantes relatives au thread tablet PC sont spécifiques à l’utilisation de COM (Component Object Model) et d’Automation.

Cohérence de thread

À l’exception des contrôles InkPicture et InkEdit , les objets Tablet PC sont thread-safe et sont marqués comme les deux. En étant marqués comme les deux, ils peuvent s’exécuter dans un seul appartement threadé (STA) ou un appartement multithread (MTA).

Les windows forms utilisent le modèle STA, car les windows forms sont basés sur des fenêtres Win32 natives qui sont intrinsèquement basées sur des threads d’appartement.

Applications STA et MTA

Si votre application s’exécute dans un MTA ou utilise le marshaleur thread libre (FTM), vous devez écrire du code thread-safe ; Toutefois, vous pouvez améliorer certains problèmes de performances de gestion des événements.

InkCollector et InkOverlay

Votre application ne doit pas libérer sa référence finale à l’objet InkCollector ou InkOverlay , détruisant ainsi l’objet directement à partir du thread d’encre. Au lieu de cela, l’application doit libérer l’objet InkCollector ou InkOverlay d’un thread d’application.

Attention: Une application marquée MTA ou qui utilise le FTM, qui autorise les appels directs à partir du thread d’encre dans l’appartement de l’application, peut libérer sa référence finale à l’objet InkCollector ou InkOverlay directement à partir du thread d’encre ; toutefois, cela entraîne une défaillance irrécupérable de l’application.

Récepteurs d’événements

Si votre application n’utilise pas le FTM et qu’un objet et son récepteur d’événements sont créés dans des appartements différents, l’événement s’exécute sur le thread qui entretient le récepteur d’événements.

Exceptions dans les gestionnaires d’événements

Les exceptions levées à partir des gestionnaires d’événements Tablet PC sont consommées et ne sont pas visibles par le reste ou votre application. De même, les valeurs HRESULT ne sont pas propagées à partir des gestionnaires d’événements Tablet PC. Si une application utilisant la couche COM lève une exception, le thread d’arrière-plan se termine et l’exception est perdue. Aucun gestionnaire d’événements supplémentaire n’est appelé.

Exemple de récepteurs d’événements C++

Considérations générales relatives au threading

Considérations relatives au threading de bibliothèque managée