Salve a tutti!!
Ho un problema, che su internet si capisce è abbastanza comune di accesso da un thread ad oggetti di un altro.
Per farla breve vi schematizzo (se non è chiaro chiedete pure) lo scheletro del mio programma e i punti salienti:
codice:
class form1
'in un button avvio in un nuovo thread la esegui all'interno della classe prova
public sub funzionecondivisa()
Dim a As Boolean = False
For Each f As Form In Application.OpenForms
If Form3.Name = f.Name Then
a = True
End If
Next
If a Then
Form3.Button3.PerformClick()
End If
end sub
public class prova
public sub esegui ()
'qui voglio richiamare una funzione esterna a questo thread, per la precisione una all'interno del form1 (e poi un'altra nel mio form3)
Ricapitolando, ho omesso parecchie cose, ma tutto funziona bene finchè dal mio form1 avvio un nuovo thread attraverso un button, e gli faccio eseguire la sub esegui().
A questo punto, all'interno della stessa vorrei richiamare una funzione che è dichiarata nel form1, e mi da problemi ad accedervi, per di più forse complicanza maggiore (non so, ipotizzo) e che all'interno di questa funzionecondivisa() vado a richiamare dei controlli e proprietà del form3.
Questa funzione dal form1 se viene richiamata funziona perfettamente e riesce ad accedere ai controlli del form3.
Devo chiamare un'invoke? che sintassi? dove va scritta? dichiaro una delegate? dove di preciso?
Insomma ho letto parecchie cose online, ma nonostante ciò mi perdo qualche pezzo, perché non riesco a farlo funzionare.
Voglio capire come invocare da un thread separato delle funzioni dichiarate in un form (form1) come se fosse lui stesso ad avviarle, quindi con lo stesso funzionamento che hanno avviandole dal form proprietario.
Sapete darmi una mano? Sono allo stremo e non so più che leggermi per capirci qualcosa.