Compartir a través de


Consideraciones sobre subprocesos de COM y Automatización

Las siguientes consideraciones de subproceso de Tablet PC son específicas de cuándo se usan el modelo de objetos componentes (COM) y la automatización.

Seguridad para subprocesos

Excepto para los controles InkPicture y InkEdit , los objetos Tablet PC son seguros para subprocesos y se marcan como ambos. Al marcarse como ambos, pueden ejecutarse en un apartamento de un solo hilo (STA) o en un apartamento multihilo (MTA).

Los formularios Windows Forms usan el modelo STA porque los formularios Windows Forms se basan en ventanas Win32 nativas y se espera que los subprocesos que usan ventanas Win32 y COM utilicen apartamentos de un solo subproceso.

Aplicaciones STA y MTA

Si la aplicación se ejecuta en un MTA o usa el serializador de subprocesos libre (FTM), debe escribir código seguro para subprocesos; Sin embargo, al hacerlo, puede mejorar ciertos problemas de rendimiento de control de eventos.

InkCollector y InkOverlay

La aplicación no debe liberar su referencia final al InkCollector o al InkOverlay, destruyendo así el objeto directamente desde el subproceso de tinta. En su lugar, la aplicación debe liberar inkCollector o el objeto InkOverlay de un subproceso de aplicación.

Advertencia: Una aplicación marcada como MTA o que utiliza FTM, el cual permite llamadas directas desde el hilo de entrada de lápiz en el apartamento de la aplicación, puede liberar su referencia final al objeto InkCollector o InkOverlay directamente desde el hilo de entrada de lápiz; sin embargo, esto provoca un fallo irrecuperable en la aplicación.

Receptores de eventos

Si la aplicación no usa FTM y un objeto y su receptor de eventos se crean en apartamentos diferentes, el evento se ejecuta en el subproceso que mantiene el receptor de eventos.

Excepciones en controladores de eventos

Las excepciones lanzadas desde los controladores de eventos de Tablet PC se consumen y no son visibles para el resto de la aplicación. Del mismo modo, los valores HRESULT no se propagan desde controladores de eventos tablet PC. Si una aplicación que usa la capa COM produce una excepción, el subproceso en segundo plano finaliza y se perderá la excepción. No se llamará a ningún controlador de eventos adicional.

Ejemplo de receptores de eventos de C++

Consideraciones generales sobre subprocesos

Consideraciones sobre subprocesos de biblioteca administrada