Recientemente, encontré esta situación en la que quería mostrar un formulario en otro hilo (no el hilo principal/IU). Usé un hilo de subprocesos. El formulario alojaba un RCW (para un componente COM). La instanciación del formulario me dio la excepción de que el hilo debe ser una STA. Traté de establecer el estado del departamento como STA. Pero eso tampoco funcionó. Finalmente terminé creando un hilo de manera explícita y eso funcionó (utilicé ShowDialog y no necesito crear una bomba de meesage).¿Por qué no podemos cambiar el estado de un subproceso de ThreadPool y por qué no necesitamos una bomba de mensajes cuando se usa ShowDialog?
EDIT:
- Sé que threadpool hilos son MTA. Pero, ¿por qué no se puede establecer en STA? Solo curiosidad por esto.
- Otra pregunta que acaba de hacer estallar en mi cabeza: ¿Por qué no requiere una bomba
mensaje cuando ShowDialog() (a
pantalla un formulario) se utiliza
Gracias por la respuesta. ¿Puede señalar un enlace que dice que ShowDialog() inicia su propio bucle de mensajes. –
http://www.red-gate.com/products/reflector. Recomendado. –
Gracias. Application.RunDialog (esto) hace el truco. –