I delegate non li ho ancora imparati. Avevo provato ad usare questo sistema ma non ero riuscito comunque a far funzionare come volevo il mio programma.
Sai come l'ho risolto alla fine? Sempre grazie a msdn.... ho scoperto questo comando:
codice:
Control.CheckForIllegalCrossThreadCalls = False
...inibisce il controllo sui thread e mi permette di scrivere il messaggio nella mia finestra.
Dicono che non e` bello usarlo perche` potrebbe comportare dei problemi ma nel mio caso lo uso in una parte di codice molto semplice per cui non dovrei avere alcuna controindicazione.
In sostanza:
codice:
Sub.....
Control.CheckForIllegalCrossThreadCalls = False
prg.StartInfo.FileName = <nome prog>
prg.StartInfo.Arguments = <args>
prg.StartInfo.CreateNoWindow = True
prg.StartInfo.UseShellExecute = False
prg.StartInfo.RedirectStandardOutput = True
prg.StartInfo.WindowStyle = ProcessWindowStyle.Normal
AddHandler prg.OutputDataReceived, AddressOf prg_OutputDataReceived
prg.Start()
prg.BeginOutputReadLine()
prg.WaitForExit()
End Sub
Private Sub prg_OutputDataReceived(ByVal sender As System.Object, ByVal e As System.Diagnostics.DataReceivedEventArgs)
gr_msg.AppendText(e.Data & NewLine)
End Sub
Funge alla grande!!