Rispetto alla tua risposta predecente,
era solo nell'esempio per far capire che il thread secondario riusciva a modificare le proprietà dei controlli gestiti dalla GUIcodice:Button2.Visible = True Button3.Visible = True
In ogni caso, se hai fatto le cose per bene, dovrebbe andare.. perché dici che la GUI non risulta accessibile? Il trucco dei 2 (o più thread) è proprio per questo, per far si che un thread secondario esegua del lavoro lasciando comunque l'interfaccia (e il thread che la gestisce) recettiva agli eventi.
Dovresti postare il codice.
Meglio ancora: guardati il controllo backgroundWorker
Definisci la sub Work, la fai partire e poi c'è l'evento di "aggiurnamento" della GUI, oltre a intercettare la richiesta di chiusura del Thread stesso..