Bombas de mensajes y dominios de aplicación

Tengo una aplicación C # (FFx 3.5) que carga archivos DLL como complementos. Estos complementos se cargan en AppDomains separados (por muchas buenas razones, y esta arquitectura no puede cambiar). Todo esto está muy bien.

Ahora tengo el requisito de mostrar un cuadro de diálogo de uno de esos complementos. Tenga en cuenta que yono puedo devuelva el formulario de diálogo a la aplicación principal y haga que se muestre allí (la infraestructura actual no lo admite).

Fracaso 1

En mi DLL creé un formulario y llamé Show. El esquema del cuadro de diálogo apareció pero no se pintó y no responde a los eventos del mouse. Supuse que esto se debe a que la DLL está en un dominio de aplicación separado y la bomba de mensajes para la aplicación de alguna manera no puede enviar mensajes al nuevo formulario.

Fracaso 2

En mi DLL creé un formulario y llamé ShowDialog, que debería crear un mensaje interno para el diálogo. El diálogo se muestra y responde a los clics (hurra), pero parece que la aplicación principal ya no se está procesando o despachando mensajes de Windows porque deja de pintar y ya no responde a los eventos del mouse. Por alguna razón, ahora parece que la bomba de mensajes de la aplicación principal no se está distribuyendo.

Fracaso 3

En mi DLL creé un formulario y llamé Application.Run. Esto sin duda creará una bomba de segundo mensaje completa. Obtengo el mismo comportamiento que Failure 2: el cuadro de diálogo se comporta, pero la aplicación de llamada no.

¿Alguna idea sobre qué está sucediendo exactamente aquí y cómo puedo mostrar un cuadro de diálogo de la otra DLL de AppDomain y hacer que tanto la persona que llama como la persona que llama respondan y pinten correctamente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta