Excepción de hilos cruzados al configurar el propietario de WinForms.Form: ¿cómo hacerlo correctamente?

Tengo un subproceso de interfaz de usuario principal que ejecuta la aplicación y crea el formulario de ventana principal (llamémosloW). También tengo un hilo secundario que giro y que crea un cuadro de diálogo (llamémosloB).

Quiero establecer el propietario del diálogoB para ser la ventana principalW. La configuración deBl propietario de @s sucede en el hilo que creóB. Básicamente

b.Owner = w;

pero esto arroja una excepción entre hilos que me dice que estoy intentando acceder a laW objeto del hilo equivocado.

Así que intenté ejecutar el código en el hilo principal de la interfaz de usuario, usando unControl.Invoke enW. Pero luego, aparece el mismo error que me dice que estoy intentando acceder aB del hilo equivocado:

System.InvalidOperationException was unhandled by user code
  Message=Cross-thread operation not valid: Control 'B' accessed from a
  thread other than the thread it was created on.
  Source=System.Windows.Forms

¿Cómo se supone que debo hacerlo bien?

Respuestas a la pregunta(3)

Su respuesta a la pregunta