Premessa, si parla di C# 2003.

Sto facendo una form implementata in un progetto che parte se non arrivano parametri a linea di comando.

La mia applicazione vuole dei parametri, se non li trova parte questa form che cerca di recuperare dall'utente i parametri.

Il mio problema è questo, la form che faccio partire deve essere modulare, interna al progetto ma eseguita fuori dal contesto.

La logica è questa:

Trovo i parametri:
Application.Run(new Principale(args));
...

Non li trovo:
Application.Run(new Toppa());
...

Il primo tentativo è stato quello che una volta che Toppa ha finito bene il suo ciclo richiama Application.Run(new Principale(args)); ma mi fa il gesto dell'ombrello perché: "Impossibile avviare un secondo ciclo di messaggi su un thread singolo. Utilizzare invece Application.RunDialog o Form.ShowDialog".

Il bello è che i due rimedi suggeritimi non esistono

Il secondo tentativo è stato richiamare Toppa passandogli un array per riferimento (Application.Run(new Toppa(ref args)) e poi rilanciare Application.Run(new Principale(args)); con quell'array che si è lavorato Toppa. Solo che l'array risulta vuoto, anche se Toppa il suo array referenziato interno lo ha riempito.

Avete suggerimenti?

Grazie