Ho provato a rifare:
codice:
'chiamata dal thread esterno
form3.button3.performclick() ' in alternativa ho provato form3.button3_click ma non so che parametri passargli
'nel form3
delegate sub clicca (ByVal sender As System.Object, ByVal e As System.EventArgs)
'nel button3
If Me.Button3.InvokeRequired Then
Dim d As New clicca(AddressOf Button3_Click)
Me.Invoke(d)
Else
'fai operazioni
Ho provato a chiamare un funzione:
codice:
'chiamata da thread esterno
form1.update()
'nel form1
delegate function prova() as boolean
'nel update del form1
if me.update.invokerequired 'non funziona, non è un membro di boolean e non me lo fa fare
Allora ho provato con una semplice sub come prova ma stesso risultato, non mi prende invokerequired.
Perché non sono controlli?
Allora non posso richiamare sub come se il proprietario fosse il form1 o form3?
Per il button3 comunque non va e non arriva mai ad entrare nella sub.
Per quel che riguarda come creo il thread, ce l'ho incapsulato in una classe in form1, ho un po' di var pubbliche nella classe e un metodo pubblico, il resto private.
Deve svolgere compiti lunghi quindi l'ho messo a parte, non deve nemmeno interagire molto con l'esterno una volta che gli ho dato un paio di parametri quando lo richiamo, però per 2 chiamate che devo fare, che mi devono aggiornare magari la vista di un form con gli errori che compaiono mentre elabora, e con l'usare una funzione dichiarata nel form1 perchè più comoda e usata da tutti gli altri form, mi sembra di impazzirci dietro.